-
Pilotage d' application
Bonsoir,
J'aimerai créer un logiciel qui pilote un autre logiciel (c-à-d clique dans les menus sur des boutons, lit des libelles, des tableaux,etc..)
Et je ne sais pas du tout comment faire, alors avant de commencer mes recherches (google est mon ami) est-ce que ce genre de "technique" porte un nom special ? et en anglais ?
Merci beaucoup et bon WE
-
Quel est le but en fait ? Créer une sorte de robot qui va utiliser l'application pour toi ?
Si c'est le cas, n'y a-t-il pas de robots qui existent déjà sur le marché ?
-
Ce que tu essayes de faire s'appelles de l'UIAutomation (Pilotage d'interface utilisateur).
Je sais qu'avec WPF, c'est relativement simple mais pour du Winforms classique, je n'ai jamais regardé.....
-
salut
une premiere approche "simple" en window form ou meme en windows (d'ailleurs) est de passé par l'utilisation des SendMessage()
Cette fonction de l'API Win32 , te permet d'envoyer des messages windows à n'importe quelle application du moment que tu connais son Handle de fenetre
(souvent Hwnd sous windows :) )
Une application sous windows fonctionne comme ceci :
L'utilisateur effectue une action sur une fenetre, Windows envoie à la "pompe" à message de windows un message qui correspond à cette action.
Il suffit donc que ton "générateur" soit celui qui envoie les messages pour piloter "proprement" ton IHM... apres, avec .Net,comme tu peux par la reflection obtenir la composition de toute ton application, ihm, etc... il est "assez" facile de récupérer l'ensemble des "handle" de composant pour pouvoir ensuite leur adresser les messages les concernants :)
Si je ne suis pas assez clair, n'hésite pas à demander une (des) précision(s).
The Monz, Toulouse
-
Une chose essentiel, l'application que tu doit piloter, as tu accés à son code source ? Peux tu le modifier ?
Parce que pour le pilotage d'application, il est plus simple que l'application qui doit être piloter soit prévu pour l'être par ce que sinon tu va te galérer.
Bien qu'il semblerait que SendMessage() facilite les choses d'après ce que dit theMonz31 .
-
salut
oui, sendMessage() simplifie "grandement" les choses à condition de savoir "un minimum" à quel composant envoyer la donnée :)
Sinon, par les api, tu peux "toujours" déplacer la souris et simuler un click souris ou appui clavier :)
The Monz, Toulouse
-
Perso j'avais essayer cela il y a pas mal de temps pour piloter une appli, je me souvenais des macros que l'on pouvait enregistrer sous excel.
J'avais trouvé une application, payante mais que tu peut essayer gratuitement pendant 15 jours, malheuresement, l'appli semblait pourris, au bout de trois répétition de la même opération j'avais un décalage du positionnement de la souris et à la fin je n'appuyais plus sur le bouton :aie: .
Je ne sais pas s'il y a de meilleur outils aujourd'hui, mais perso j'en garde un mauvais souvenir :( .