begin process at 2012 02 16 16:07:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > EXEMPLE DE L'UTILISATION DE MOUSE_EVENT

EXEMPLE DE L'UTILISATION DE MOUSE_EVENT


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :12/01/2003 Date de mise à jour :12/01/2003 16:48:51 Vu :6 443

Auteur : peponr

Ecrire un message privé
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 !


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

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

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

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.

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

Commentaire de peponr le 20/01/2003 18:43:57

Hé elle est ou la note Tite ?

Commentaire de peponr le 23/01/2003 16:41:55

Laissez vos commentaires svp...

Commentaire de tirud le 15/02/2003 20:35:06

bien peponr, a quand la prochaine source ?!!

Commentaire de peponr le 23/02/2003 16:26:40

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

Commentaire de tirud le 24/02/2003 21:04:56

très bientôt peponr !! LoL

Commentaire de tirud le 24/02/2003 21:05:19

très bientôt peponr !! LoL

Commentaire de tirud le 24/02/2003 21:06:18

oups dsl j'ai cliké 2 fois ;)

Commentaire de peponr le 24/02/2003 21:18:48

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

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 ;)

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

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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,808 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales