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. :wink:

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 :wink:





@++

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. :wink:

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 :wink:





@++

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 !! :roll: :lol:

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.