Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXEMPLE DE L'UTILISATION DE MOUSE_EVENT


Information sur la source

Catégorie :API Niveau : Débutant Date de création : 12/01/2003 Date de mise à jour : 12/01/2003 16:48:51 Vu : 3 965

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Ben c'est un code pour les newbies, il montre comment arreter un PC proprement sans que vous touchiez a votre souris !
LLe code marche que si vous etes en 1024**** et sous Me, donc dsl mais la fleme de faire pour les autres !
En + j'ai un probleme le temps avant l'éxtintion du pc ne peut pas dépacer 1 min, donc si qqn pourrai résoudre le probleme...
 

Source

  • 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
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



Conclusion

SvP ne me chier pas dessus comme a chaque fois que quelqu'un pose une source !
 

Commentaires et avis

signaler à un administrateur
Commentaire de Mémère le 12/01/2003 18:40:36 administrateur CS

putain les fautes d'ortho.... mais tu te relis?

signaler à un administrateur
Commentaire de Tite le 13/01/2003 18:37:45

Ok ! c'est bien ce que tu as fait. Moi, je te donne 8 tu vois !
Courage.

signaler à un administrateur
Commentaire de peponr le 18/01/2003 19:58:55

Merci Tite pour tes encouragements, et Mémère a part gueler tu sais faire quoi ???

signaler à un administrateur
Commentaire de peponr le 20/01/2003 18:43:57

Hé elle est ou la note Tite ?

signaler à un administrateur
Commentaire de peponr le 23/01/2003 16:41:55

Laissez vos commentaires svp...

signaler à un administrateur
Commentaire de tirud le 15/02/2003 20:35:06

bien peponr, a quand la prochaine source ?!!

signaler à un administrateur
Commentaire de peponr le 23/02/2003 16:26:40

tres bientot tirud et vous a quand la premiere source ??! lol

signaler à un administrateur
Commentaire de tirud le 24/02/2003 21:04:56

très bientôt peponr !! LoL

signaler à un administrateur
Commentaire de tirud le 24/02/2003 21:05:19

très bientôt peponr !! LoL

signaler à un administrateur
Commentaire de tirud le 24/02/2003 21:06:18

oups dsl j'ai cliké 2 fois ;)

signaler à un administrateur
Commentaire de peponr le 24/02/2003 21:18:48

hummmmm, ben je l'attend avec impatience! Je n'espere pas etre dessus ?!

signaler à un administrateur
Commentaire de MouLeT le 11/08/2004 18:06:04

je crois keu tu peu po depasser les 1 minutes komme tu dit kar le timer ne peu po dépasser les 2^16 ;65536 plus exactement donc on peu po fair plus de 65.536Secondes.Donc fait des variables ;)

signaler à un administrateur
Commentaire de lavabo le 15/03/2007 16:40:48

Merci pour ce code Je cherche à simuler le clic gauche par la touche F10
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???

signaler à un administrateur
Commentaire de PWM63 le 15/05/2008 17:24:35

Je sais, ca date... mais bon, comme je suis tombé dessus pour l'API, j'en profite pour poster des commentaires.

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 += 1
if 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.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.