Bonjour ,
J'essaie de controler une fenetre via un petit programme.
En gros la fenetre se compose d'une image sur laquelle il ya differente zone, lappuie, sur tel ou tel zone declenche telle ou telle action.
Mais le probleme c'est que j'arrive pas à lui faire comprendre que je clic, enfin pas tout le temps ^^.
voila le code (avec les coord de la souris et de la zone où cliquer hardcodé mais c pas le prob)
Donc quand je le lance une fois, aucun clic n'est enregistré et jai ceci ds le log de spy++ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 print win32api.SendMessage(h, 0x20, 0x001114A0, 0x02000001) #setcursor print win32api.SendMessage(h, 0x0200, 0, 0x003B0020) #mousemove print win32api.SendMessage(h, 0x20, 0x001114A0, 0x02010001) # wm_setcursor print win32api.SendMessage(h, 0x0201, 0x0001, 0x003B0020) # wm_lbuttondown print win32api.SendMessage(h, 0x0202, 0x00, 0x003B0020) # wm_lbuttonup
Par contre, si je lance ce bout de code deux fois de suite tres rapidement, le clic est enregistré deux fois et ds spy++ jai :<00001> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00002> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00003> 001114A0 S WM_MOUSEMOVE fwKeys:0000 xPos:32 yPos:59
<00004> 001114A0 R WM_MOUSEMOVE
<00005> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN
<00006> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00007> 001114A0 S WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:32 yPos:59
<00008> 001114A0 R WM_LBUTTONDOWN
<00009> 001114A0 S WM_LBUTTONUP fwKeys:0000 xPos:32 yPos:59
<00010> 001114A0 R WM_LBUTTONUP
<00011> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00012> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00013> 001114A0 S WM_MOUSEMOVE fwKeys:0000 xPos:32 yPos:59
<00014> 001114A0 R WM_MOUSEMOVE
<00015> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN
<00016> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00017> 001114A0 S WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:32 yPos:59
<00018> 001114A0 R WM_LBUTTONDOWN
<00019> 001114A0 S WM_LBUTTONUP fwKeys:0000 xPos:32 yPos:59
<00020> 001114A0 R WM_LBUTTONUP
Enfin voila koi je comprend pas trop bien. je vois juste comme diff qu'il ya un message WM_NCHITTEST qui se gliss apres le WM_BUTTONUP mais kan je le rajoute ds le code precedent ça ne marche toujours pas.<00021> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00022> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00023> 001114A0 S WM_MOUSEMOVE fwKeys:0000 xPos:32 yPos:59
<00024> 001114A0 R WM_MOUSEMOVE
<00025> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN
<00026> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00027> 001114A0 S WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:32 yPos:59
<00028> 001114A0 R WM_LBUTTONDOWN
<00029> 001114A0 S WM_LBUTTONUP fwKeys:0000 xPos:32 yPos:59
<00030> 001114A0 S .WM_NCHITTEST xPos:1082 yPos:125
<00031> 001114A0 R .WM_NCHITTEST nHittest:HTCLIENT
<00032> 001114A0 R WM_LBUTTONUP
<00033> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00034> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00035> 001114A0 S WM_MOUSEMOVE fwKeys:0000 xPos:32 yPos:59
<00036> 001114A0 R WM_MOUSEMOVE
<00037> 001114A0 S WM_SETCURSOR hwnd:001114A0 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN
<00038> 001114A0 R WM_SETCURSOR fHaltProcessing:False
<00039> 001114A0 S WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:32 yPos:59
<00040> 001114A0 R WM_LBUTTONDOWN
<00041> 001114A0 S WM_LBUTTONUP fwKeys:0000 xPos:32 yPos:59
<00042> 001114A0 S .WM_CAPTURECHANGED hwndNewCapture:00000000
<00043> 001114A0 R .WM_CAPTURECHANGED
<00044> 001114A0 S .WM_NCHITTEST xPos:1082 yPos:125
<00045> 001114A0 R .WM_NCHITTEST nHittest:HTCLIENT
<00046> 001114A0 R WM_LBUTTONUP
Merci
Partager