cs_Oswalde
Messages postés3Date d'inscriptionmercredi 14 juillet 2004StatutMembreDernière intervention10 septembre 2004
-
7 sept. 2004 à 00:06
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
10 sept. 2004 à 20:10
Bonjour à tous,
Je dois depuis un prog en VB simuler le clic sur le bouton gauche de la souris, mais il y a un problème, le logiciel auquel je dois faire croire que la souris a été cliquée utilise son propre pilote de souris. De ce fait, les commandes disponibles en VB ne fonctionnent pas.
Je me suis donc dis que le passage par une routine assembleur qui agirait au niveau le plus "bas" pourrait résoudre ce problème.
Seulement voilà, je n'y connais rien (en assembleur :) )...
Si qlq1 lis ce message et peut m'aider, je lui en serais reconnaissant.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 sept. 2004 à 00:32
Pas une question de langage, en mode protege c'est le systeme qui cree et/ou propage un evenement.
Regarde SendInput() dans MSDN. A noter que le prog cible peut analyser l'etat injecte ou non de l'evenement et donc ne pas vouloir reagir en pareil cas.
Si tu dois simuler un clic sur bouton ouchose de ce genre tu peux directement inserer l'event dans la pile du prog par PostMessage(), ce sera plus sur d'arriver.
cs_Oswalde
Messages postés3Date d'inscriptionmercredi 14 juillet 2004StatutMembreDernière intervention10 septembre 2004 9 sept. 2004 à 21:40
Merci pour ces suggestions. J'ai essayé d'utiliser SendInput() mais comme près-senti, cela ne fonctionne pas :sad) .
Je vais essayer de me pencher sur l'autre instruction proposée mais là cela me semble tres compliqué, je n'ai pas trouvé d'info sur la structure de cette commande (mais je cherche :) )
Merci de ces propositions...
PS : Si qlq1 connait la façon d'utiliser PostMessage() pour demander un clic gauche, je suis intéressé par un exemple.
cs_Oswalde
Messages postés3Date d'inscriptionmercredi 14 juillet 2004StatutMembreDernière intervention10 septembre 2004 10 sept. 2004 à 19:53
Bon là y a qlq chose qui m'echappe :question) ...
Si j'ai bien compris, PostMessage() attend 4 parametres :
- Un identificateur de fenêtre
- Un message
- Un premier parametre
- Un deuxieme parametre
- L'identificateur de fenetre, je le trouve avec la fonction FindWindow() qui envoie 2 parametres (des chaînes de caractères), la première vide, la deuxième contient le non de la fenetre dont je veux connaitre l'identifiant.
EX : hWnd = FindWindow(vbNullString, "Non de la fenetre")
Jusque là ça va :)
A partir de maintenant ça va plus :sad)
- Le deuxieme parametre (le message) c'est une valeur numérique, format long.
En cherchant sur le net, j'ai trouver qu'il falait charger la valeur hexa &h201 comme message pour un clic gauche. Mais je n'en suis pas sur
- Le troisieme et Quatrieme parametre j'ai pas trouvé leur signification et ej les ais laissé à 0...
Donc j'envois PostMessage(indentificateur de fenetre, &h201, 0, 0) -> et bien évidement ca marche pas :sad)
Y a t'il qlq chose que je fais mal ou que je ne fais pas et qu'il faut faire ?