Soyez le premier à donner votre avis sur cette source.
Snippet vu 11 384 fois - Téléchargée 39 fois
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Private Declare Function SetCursorPos& Lib "user32" (ByVal X As Long, ByVal Y As Long) Private Selection As Integer 'voir timer 'on déclare les constantes Const MOUSEEVENTF_ABSOLUTE = &H8000 Const MOUSEEVENTF_LEFTDOWN = &H2 Const MOUSEEVENTF_LEFTUP = &H4 Const MOUSEEVENTF_MIDDLEDOWN = &H20 Const MOUSEEVENTF_MIDDLEUP = &H40 Const MOUSEEVENTF_MOVE = &H1 Const MOUSEEVENTF_RIGHTDOWN = &H8 Const MOUSEEVENTF_RIGHTUP = &H10 Const MOUSEEVENTF_WHEEL = &H80 Const MOUSEEVENTF_XDOWN = &H100 Const MOUSEEVENTF_XUP = &H200 Const WHEEL_DELTA = 120 Const XBUTTON1 = &H1 Const XBUTTON2 = &H2 Private Sub Command1_Click() 'on vérifie que le textbox ne comporte que des chiffres. If IsNumeric(Me.Text1) = False Then MsgBox "Vous devez saisir des chiffres uniquement", vbCritical, "Erreur" Me.Text1 = "" Me.Text1.SetFocus Else Timer1.Interval = Text1.Text 'on met le temps avant l'extinssion du pc, que le gars a rempli Timer1.Enabled = True 'on active le timer Text1.Text = "" 'on nétoit le textbox End If End Sub Private Sub Timer1_Timer() Select Case Selection Case 0 'ici on déclare la position du curseur sur le bouton démmarer X = 30 Y = 755 'là on active la position du curseur SetCursorPos X, Y 'ici on clique sur le bouton Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) ' 'et là on relache la bouton Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) Timer1.Interval = 1000 Selection = 1 Case 1 'pareil sauf qu'on veut mettre sur arreter. X = 30 Y = 725 'on active le curseur sur arréter SetCursorPos X, Y 'on clique Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) ' 'on relache Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) Selection = 2 Case 2 'vous avez compris...(on clique sur le bouton ok, de la fenetre qui s'ouvre) X = 460 Y = 435 SetCursorPos X, Y Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) ' Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) End ' on met fin au prog avant l'arret de Windows End Select End Sub
Pour que cela puisse fonctionner sur toutes les résolutions, tu auras besoin d'utiliser :
screen.PrimaryScreen.WorkingArea
Au lieu de :
If IsNumeric(Me.Text1) = False
Tu peux mettre :
If Not IsNumeric(Me.Text1)
Pour que cela puisse fonctionner au delà de la minute :
Else
nb_secondes_écoulées = 0
nb_secondes_à_attendre=Text1.Text
Timer1.Interval = 1000 'On force le timer sur 1 seconde
Timer1.Enabled = True 'on active le timer
Text1.Text = "" 'on nettoit la textbox
End If
Private Sub Timer1_Timer()
Select Case Selection
Case 0
'ici on compte les secondes écoulées
nb_secondes_écoulées += 1if nb_secondes_écoulées >nb_secondes_à_attendre Then selection 1
Case 1
'ici on déclare la position du curseur sur le bouton démmarer
Au lieu de cliquer puis de relacher :
'on clique
Call mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0) '
'on relache
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_ABSOLUTE, Me.Left, Me.Top, 0, 0)
Tu peux faire les 2 en même temps et si tu n'utilises pas la constante de déplacement de la souris, inutile de renseigner les dx et dy par des valeurs qui ne veulent plus rien dire sachant que même MOUSEEVENTF_ABSOLUTE devient inutile :
'on clique et on relache
Call mouse_event(MOUSEEVENTF_LEFTUP + MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0)
Et +1 Mémère !
Et @Lavabo : A part l'API non déclaré ou les constantes non renseignées, je ne vois pas de pb.
voici le code en tuilisant l'API mouse event
If e.KeyCode = Keys.F10 Then
SetCursorPos(Label1.Location.X, Label1.Location.Y)
'Le bouton gauche de la souris s'enfonce
Beep()
mouse_event(MOUSEEVENTF_LEFTDOWN, Label1.Location.X, Label1.Location.Y, 0, 0)
'le bouton gauche de la souris se relache
mouse_event(MOUSEEVENTF_LEFTUP, Label1.Location.X, Label1.Location.Y, 0, 0)
End If
If e.KeyCode = Keys.Escape Then
Me.Close()
End If
End Sub
Le programme s'execute bien , je déplace le curseur mais rien à faire pour le faire cliquer.
Quelqu'un aurait une idée???
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.