cs_gi
Messages postés58Date d'inscriptionmardi 20 janvier 2004StatutMembreDernière intervention12 février 2005
-
30 nov. 2004 à 13:40
Tamplan
Messages postés26Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention31 mars 2009
-
24 sept. 2005 à 15:53
Bonjour,
J'aimerais piloter un prgramme commercial (remplir des champs et clicker sur des boutons) avec mon appli VB 6.
Je pensais utiliser sendkeys mais les racourcis clavier n'existent pas tous !!
Comment peut on donner le focus à un champ texte afin d'utiliser sendkeys pour remplir ce champ?
Comment peut on simuler le click souris sur un bouton precis ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 30 nov. 2004 à 21:47
Les API qui peuvent t'interesser : GetParent, EnumChildWindow, mouse_event, keybd_event.
Sub-classer, cela veux dire intercepter les messages à destination de la fenêtre, et les traiter à la place de la fenêtre de destination. Par exemple, tu peux intercepter le clic sur un bouton pour ignorer l'action, ou la remplacer par l'action de ton choix.
Tu peux également envoyer des messages aux contrôles de l'application source (exemple, remplir un textbox, sélectionner un item d'un listbox, etc.)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 1 déc. 2004 à 13:36
Avec EnumChildWindow : il faut savoir que n'importe quel contrôle (sauf les contrôles statiques tels que les labels, les shapes, ou les lines) sont des fenêtres (par exemple : un commandbutton, un listbox, ou un richtextbox sont des fenêtres).
Avec cette fonction, tu peux récupèrer le hWnd de ces contrôles, et ensuite, tu peux définir tout ce que tu veux, et récupèrer ce que tu veux (leurs positions, leurs tailles, leur texte, etc.)
_______________________________________
cs_Prince Charmant
Messages postés34Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention30 novembre 2004 30 nov. 2004 à 13:52
Salut,
il y a trois méhtodes pour piloter une Appli :
DDE => ouvrir un canal et envoyer les instructions.
OLE => créer un objet du type de la application et lui appliquer les méthodes qui vont bien.
SendKeys => Envoyer des touches.
Les 2 premières nécessitent que l'application ai été developpée dans ce sens. Alors que la 3° fonctionne "pratiquement" toujours (si l'application est active).
On peut utiliser les séquences "%u" (alt+u) pour arriver directement à une zone marquée par un u souligné. Si il n'y en a pas, il faut compter les tabulations et envoyer "{TAB}".
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 30 nov. 2004 à 16:07
Ou passer par des API pour récupèrer les informations de tout les contrôles de l'application commerciale, et intéragir avec elle (voir même la sub-classer), mais là, c'est relativement compliqué à mettre en oeuvre, et il faut bien connaitre l'application à piloter !
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 2 déc. 2004 à 13:46
Comment cà "agir" sur les combo ? Modifier l'item sélectionné ?
Pour le listview, je pense que le plus simple reste de cliquer au niveau du pixel 1*1, ou 2*2 qui doit correspondre à la première ligne normalement...
_______________________________________