georgeduke
Messages postés167Date d'inscriptiondimanche 6 février 2005StatutMembreDernière intervention13 avril 2007
-
17 juil. 2005 à 17:48
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
28 avril 2007 à 19:09
Salut,
Malgré toutes les infos que j'ai trouvé ici et là, des choses me
manquent pour utiliser correctement SendMessage(..) de user32.dll.
Depuis mon programme en C#, je souhaite "simuler" la pression de la
touche F5 vers une application externe dont je réussi à identifier le
handle. Voilà où j'en suis au niveau de mon source.... J'ai bon ?? lol
int hwnd = FindWindowEx(0, 0, 0, "UNLOAD.SQL - SQLTalk for Windows");
if (hwnd != 0) {
rtb_etapes.Text += hwnd.ToString();
SendMessage(hwnd, WM_KEYDOWN,VK_F5, 0);
System.Threading.Thread.Sleep(100);
SendMessage(hwnd, WM_KEYUP,VK_F5, 0);
}
}
=> Le problème est tout simple : Quelles sont les valeurs que
doivent prendre "WM_KEYDOWN" et de "VK_F5" pour que SendMessage
puisse fonctionner ?
Ps : J'ai vu que "Coq" a réussi a trouvé la valeur de WM_LBUTTONDOWN (=
0x0201) pour simuler la pression clic_gauche avec la souris - je ne
sais pas comment il a fait
georgeduke
Messages postés167Date d'inscriptiondimanche 6 février 2005StatutMembreDernière intervention13 avril 2007 17 juil. 2005 à 18:29
Oui... J'ai utilisé une source sur ce site qui scanne les handles et
cela correspond bien... C'est pour ça que je croyais que c'était mon
code qui clochait.. Mais je vais essayer ce SendMessage sur notepad.exe
pour voir...
georgeduke
Messages postés167Date d'inscriptiondimanche 6 février 2005StatutMembreDernière intervention13 avril 2007 17 juil. 2005 à 18:46
Je galère toujours j'ai donc fait un simle test ; simuler la touche F5
qui, sur la fenetre du Bloc note, insère la date et l'heure sous forme
de texte.
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 28 avril 2007 à 03:33
Punaise, deux ans après, je suis exactement dans la même situation.
Et je viens de changer SendMessage pour PostMessage et ça fonctionne :)
T'es un ange Coq
Mais pourquoi SendMessage ne fonctionne pas?
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 28 avril 2007 à 19:09
Heu, bonne question, mes compétences en manipulation directe des APIs sont un peu trop légères pour avancer une réponse ^^
Une différence entre les 2 est que PostMessage poste le message dans la file de la cible et retourne immédiatement alors que SendMessage attend que le message aie été traité par la cible.
Enfin, en général, je suis la doc, et celle de WM_KEYDOWN dit "The WM_KEYDOWN message is posted to the window".