SendMessage 'tombe' sur une image
Bonjour à tous,
Voici mon pb, je veux simuler l'action de la souris sur un logiciel afin de l'automatiser. J'ai trouvé sur Developpez.com ce code que j'ai appliqué :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
procedure Tform1.my_beautifull_prog;
var
hCible, hButton : HWND;
begin
winexec(pchar('C:\my_beautifull_prog.exe'),sw_show);
application.ProcessMessages;
sleep(2000);
hCible := FindWindow(nil, PChar('my_beautifull_prog')); //on retrouve le Handle de la fenêtre du programme
if hCible <> 0 then
begin
hButton := FindWindowEx(hCible, 0, nil, PChar('OK')); //on retrouve le Handle du bouton sur lequel on veux cliquer
if hButton <> 0 then
SendMessage(hButton, BM_CLICK, 0, 0); //on ( veut !) lui faire croire que l'on a cliqué dessus
end; |
Le problème est que ce n'est pas un Button, c'est, d'après WinID ( logiciel comme Spy++), une image (le bouton !). Et bien sûr ça ne fonctionne pas !
En fait, le prog se lance, reconnaît la fenêtre, le bouton (image) apparaît et rien ne se passe: pas de clic simulé !
Comment faire ? Remplacer hbutton par quoi ? Ce hbutton n'est qu'un HWND, une image a-t-elle un HWND ? Que faire ?
Tout ça sous XP PRO, Millenium et avec ce cher Delphi 6 Perso ( ben oui !)
Merci pour vos réponses.
Phil