Je souhaite créer un programme ou utiliser un programme qui lira les valeurs de mémoire sur une autre application. Est-ce que quelqu'un connaît une application / une bibliothèque qui fera cela? p>
L'application cible est Ceci . J'aimerais lire les valeurs de change de celui-ci. p>
Je suis un programmeur C # expérimenté, mais je n'ai jamais travaillé avec l'API Win32 / User32 qui est ce que je suppose que je devrai traiter cela pour le sortir. p>
Une aide qui me rend dans la bonne direction est grandement appréciée. p>
5 Réponses :
Il pourrait être plus facile de gratter leurs données en automatisant une capture d'écran, puis du processus OCR. Si c'est votre objectif. P>
Liens potentiellement pertinents: p>
Bien que cette solution sent un peu, c'est peut-être la solution la plus simple avec une bonne bibliothèque OCR.
Peut être cet article aide - http://msdn.microsoft.com /en-us/magazine/cc163617.aspx , mais je pense que ce n'est pas universel et que votre tâche est préférable d'avoir accès directement à Forex API / Web-Service ou essayez de saisir les données nécessaires sur le réseau. P >
typiquement une application crée des commandes dans une boîte de dialogue dans un manoir cohérent, un même identifiant, le même ordre, etc., alors trouver un contrôle de manière programmatique est assez simple. Utilisant Quel type de contrôle est la valeur affichée dans? Vous pourrez peut-être utiliser getdlgitemtext a > Pour obtenir la valeur une fois que vous avez la poignée de la fenêtre parente et l'ID de contrôle? Pour obtenir la fenêtre des parents, essayez d'utiliser Enumwindows . p>
Je ne pouvais pas arriver à la valeur souhaitée, mais j'ai pu obtenir une poignée pour le conteneur d'où tous les taux de change différents étaient. Les seules commandes qui apparaissaient dans le conteneur étaient les boîtes combinées pour sélectionner une valeur (taille du lot).
Lorsque vous utilisez Spy ++, toutes les commandes apparaissent-elles sous le même parent?
Les seuls contrôles que je vois sont les boîtes de combo pour sélectionner la taille du lot, qui sont affichées juste à côté des chiffres que je veux lire, mais les commandes de chiffres ne sont pas affichées dans SPY ++. Des suggestions sur la façon d'aller à ceux-ci?
Dans Spy ++, vous pouvez cliquer avec le bouton droit de la souris sur une fenêtre et sélectionner "Hight" qui clignote la fenêtre sélectionnée. Si vous mettez en évidence tous les frères et sœurs des cases de liste déroulante une à la fois, utilisez-vous un rectangle qui englobe le texte souhaité?
Avez-vous regardé dans autoit ou Autohotkey ? Ces deux options open source ont des capacités bien documentées pour lire du texte à partir de Windows d'application (et d'envoyer des frappes de frappe ou des meecclicks).
AutoIt est très facile à utiliser et bien documenté.
Un exemple de lecture de texte d'une fenêtre serait: p> Ceci peut être compilé dans un exécutable. P> p>
Il est possible de dépasser les objets de ferraille créés avec des contrôles de Windows natifs; Si tel est le cas, vous devriez pouvoir voir les commandes à l'aide de SPY ++. Mais des contrôles de temps sont implémentés "à la main", et il n'ya aucun moyen de les écraser (par exemple, des boîtes à outils graphiques Java Graphic jouent directement avec les graphiques, de sorte que tout le jour du jour n'a donc pas de sens de l'extérieur, ou même certains menus de bureau sont mis en œuvre. sans utiliser le contrôle du menu). P>
L'API d'accessibilité de Windows est un moyen possible de dépasser les valeurs. Vérifiez si "Narrateur", le lecteur d'écran fourni avec Windows, est capable de lire à haute voix votre application cible. P>