Page 1 sur 1
mouse_event
Publié : mar. 20/juil./2010 19:17
par SPH
Il y a 2 ou 3 ans, on pouvais dire a PB de simuler un clic de souris. Maintenant, ca ne marche plus. Quelqu'un a une explication ?
Code : Tout sélectionner
Procedure MouseEvent(Ereignis.l)
Mem.l=GlobalAlloc_(0,8)
GetCursorPos_(Mem)
mouse_event_(Ereignis | $8000,PeekL(Mem)*($FFFF/GetSystemMetrics_(0)),PeekL(Mem+4)*($FFFF/GetSystemMetrics_(1)),0,GetMessageExtraInfo_())
GlobalFree_(Mem)
EndProcedure
Repeat
Delay(100)
SetCursorPos_(470,50) ; mes coordonnées qui pointe ma souris sur PB STOP
MouseEvent(2) : Delay(5) ; clic gauche souris
MouseEvent(4) : Delay(5) ; boutton relaché
ForEver
Re: mouse_event
Publié : mar. 20/juil./2010 19:20
par venom
si tu veut, cette procédure fait de l'autoclic mais je n'est pas intégré de timer juste un delay.
Code : Tout sélectionner
Procedure clic()
Repeat
Event = WindowEvent ()
If start = 1
Delay (temp) ; delay avant 2em appuis
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTUP, xm, ym, 0, 1) ; appuis
Delay (2)
EndIf
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTDOWN, xm, ym, 0, 1) ; relache
If Event = #WM_RBUTTONDOWN
MessageRequester("information", "test", 0)
EndIf
EndIf
If temp > 11 ; si temp =10 on est en mode repetitif
start = 0 ; le programme va clicker sans arret (utile dans certain jeux)
EndIf
EndIf
If Event = #WM_LBUTTONDOWN
MessageRequester("information", "voila apres avoir cliquer sur OK vous avez 5 secondes avant l'autoclic", 0)
Delay(5000)
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTUP, xm, ym, 0, 1) ; appuis
Delay (2)
EndIf
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTDOWN, xm, ym, 0, 1) ; relache
EndIf
start = 1
EndIf
Until Event = #PB_Event_CloseWindow
Event = mouse_event_ (#MOUSEEVENTF_LEFTUP, xm, ym, 0, 1)
EndProcedure
regarde si tu peut en tirer quel que chose
@++
Re: mouse_event
Publié : mar. 20/juil./2010 20:08
par SPH
Nan, ca ne marche plus...
Code : Tout sélectionner
Repeat
Event = mouse_event_( #MOUSEEVENTF_LEFTUP, xm, ym, 0, 1) ; appuis
Delay(5)
Event = mouse_event_( #MOUSEEVENTF_LEFTDOWN, xm, ym, 0, 1) ; relache
Delay(600)
ForEver
Re: mouse_event
Publié : mar. 20/juil./2010 22:53
par Backup
venom a écrit :si tu veut, cette procédure fait de l'autoclic mais je n'est pas intégré de timer juste un delay.
Code : Tout sélectionner
Procedure clic()
Repeat
Event = WindowEvent ()
If start = 1
Delay (temp) ; delay avant 2em appuis
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTUP, xm, ym, 0, 1) ; appuis
Delay (2)
EndIf
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTDOWN, xm, ym, 0, 1) ; relache
If Event = #WM_RBUTTONDOWN
MessageRequester("information", "test", 0)
EndIf
EndIf
If temp > 11 ; si temp =10 on est en mode repetitif
start = 0 ; le programme va clicker sans arret (utile dans certain jeux)
EndIf
EndIf
If Event = #WM_LBUTTONDOWN
MessageRequester("information", "voila apres avoir cliquer sur OK vous avez 5 secondes avant l'autoclic", 0)
Delay(5000)
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTUP, xm, ym, 0, 1) ; appuis
Delay (2)
EndIf
If Event = mouse_event_ ( #MOUSEEVENTF_LEFTDOWN, xm, ym, 0, 1) ; relache
EndIf
start = 1
EndIf
Until Event = #PB_Event_CloseWindow
Event = mouse_event_ (#MOUSEEVENTF_LEFTUP, xm, ym, 0, 1)
EndProcedure
regarde si tu peut en tirer quel que chose
@++
heeee ! elle est de moi cette procedure !!
elle est tiré de mon prg de triche dans les jeux Flash !
sinon tu as ça qui marche (testé 4.50)
un clique n'importe ou sur la fenetre
fera cliquer avec un beep , plusieurs fois (tant que clic maintenu)
ce qui prouve que le clic automatique a bien lieu
Code : Tout sélectionner
;/Constantes Window
Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Enumeration
#Window_0
EndEnumeration
;/Constantes Gadget
Enumeration
#Btn_Quit
EndEnumeration
If OpenWindow(#Window_0, 300, 300, 300, 200,"Fenêtre 1" ,#PB_Window_SystemMenu, 0)
If CreateGadgetList(WindowID(#Window_0))
ButtonGadget(#Btn_Quit, 100, 170, 100, 25, "Quitter")
EndIf
Repeat
Select WaitWindowEvent()
Case #WM_LBUTTONDOWN
SetTimer_(WindowID(#Window_0),1,100,@TimerProc()) ; ici tu regle la vitesse de click !!
Case #WM_LBUTTONUP
KillTimer_(WindowID(#Window_0),1)
Case #PB_Event_Gadget
Select EventGadget()
;Case
;Case
Case #Btn_Quit : Quit = 1
EndSelect
;Case
;Case
Case #PB_Event_CloseWindow : Quit = 1
EndSelect
Until Quit = 1
End
EndIf
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
; Ici, le code à executer toutes les 100 em de secondes
SendMessage_(GadgetID(#Btn_Quit),#WM_LBUTTONDOWN,0,0)
beep_(440,10)
EndSelect
EndSelect
EndProcedure
Re: mouse_event
Publié : mer. 21/juil./2010 6:02
par venom
Ah c'etais de toi je ne savais plus de qui ça vennais

oui en effet c'etais pour tricher dans les jeux flash a l'époque
@++
Re: mouse_event
Publié : mer. 21/juil./2010 6:19
par SPH
Dobro, il y a une petite fenetre avec le bouton QUITTER qui apparait, et c'est tout. Je place la souris sur quitter mais ca ne clique pas...
Peut etre le SP3 ou une mise a jour spyware search and destroy.......
Re: mouse_event
Publié : mer. 21/juil./2010 7:37
par lepiaf31
Chez moi ceci marche très bien (PB 4.50):
Code : Tout sélectionner
Delay(5000)
var.POINT
GetCursorPos_(@var)
mouse_event_(#MOUSEEVENTF_LEFTDOWN, var\x, var\y, 0, 0)
mouse_event_(#MOUSEEVENTF_LEFTUP, var\x, var\y, 0, 0)
Re: mouse_event
Publié : mer. 21/juil./2010 8:35
par Backup
SPH a écrit :Dobro, il y a une petite fenetre avec le bouton QUITTER qui apparait, et c'est tout. Je place la souris sur quitter mais ca ne clique pas...
Peut etre le SP3 ou une mise a jour spyware search and destroy.......
un clique n'importe ou sur la fenetre
fera cliquer avec un beep , plusieurs fois (
tant que clic maintenu)
ce qui prouve que le clic automatique a bien lieu

si je n'avais pas mis de commande de depart (un premier click n'importe ou sur la fenetre)
l'auto click aurai fermé la fenetre avant meme que tu l'ai aperçut !!

Re: mouse_event
Publié : mer. 21/juil./2010 11:53
par SPH
lepiaf31 a écrit :Chez moi ceci marche très bien (PB 4.50):
Code : Tout sélectionner
Delay(5000)
var.POINT
GetCursorPos_(@var)
mouse_event_(#MOUSEEVENTF_LEFTDOWN, var\x, var\y, 0, 0)
mouse_event_(#MOUSEEVENTF_LEFTUP, var\x, var\y, 0, 0)
Merci. Oui ca maaaarche
C'est quoi var\x ? La coordonnée X de la souris ? Ton code interroge la position de la souris ?
Pour le code de Dobro, ca ne marche pas chez moi (ou plutot je n'ai pas compris ce qu'il fallait faire)...
EDIT :
Pourquoi en boucle ca ne marche pas ?
Code : Tout sélectionner
Repeat
Delay(1000)
var.POINT
GetCursorPos_(@var)
mouse_event_(#MOUSEEVENTF_LEFTDOWN, var\x, var\y, 0, 0)
mouse_event_(#MOUSEEVENTF_LEFTUP, var\x, var\y, 0, 0)
ForEver
Re: mouse_event
Publié : mer. 21/juil./2010 12:28
par lepiaf31
SPH a écrit :lepiaf31 a écrit :Chez moi ceci marche très bien (PB 4.50):
Code : Tout sélectionner
Delay(5000)
var.POINT
GetCursorPos_(@var)
mouse_event_(#MOUSEEVENTF_LEFTDOWN, var\x, var\y, 0, 0)
mouse_event_(#MOUSEEVENTF_LEFTUP, var\x, var\y, 0, 0)
Merci. Oui ca maaaarche
C'est quoi var\x ? La coordonnée X de la souris ? Ton code interroge la position de la souris ?
Oui c'est pour avoir la position actuelle de la souris.