Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction mouse_event

Declare Sub mouse_event Lib "user32" Alias "mouse_event" ( _
                 
ByVal dwFlags As Long, _
                 ByVal dx As Long, _
                 ByVal dy As Long, _
                 ByVal cButtons As Long, _
                 ByVal dwExtraInfo As Long)
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
Cette fonction génère des évènements souris. Vous pouvez ainsi déplacer la souris ou appuyer sur ces boutons rien qu'en utilisant cette API.
dwFlags contient un ou plusieurs des constantes du tableau ci-dessous,
dx et dy indiquent une position absolue ou relative (dépend de dwFlags égal à MOUSEEVENTF_ABSOLUTE ou non),
cButtons et dwExtraInfo doivent être mis à 0.

ConstanteValeur Définition
MOUSEEVENTF_ABSOLUTE&H8000 Les coordonnées sont indiquées en absolue (entre 0 et 65535).
MOUSEEVENTF_LEFTDOWN&H2 Simule une pression sur le bouton gauche de la souris.
MOUSEEVENTF_LEFTUP&H4 Simule un relâchement du bouton gauche de la souris.
MOUSEEVENTF_MIDDLEDO&H20 Simule une pression sur le bouton du milieu de la souris.
MOUSEEVENTF_MIDDLEUP&H40 Simule un relâchement du bouton du milieu de la souris.
MOUSEEVENTF_MOVE&H1 Indique un mouvement de la souris.
MOUSEEVENTF_RIGHTDOW&H8 Simule une pression sur le bouton droit de la souris.
MOUSEEVENTF_RIGHTUP&H10 Simule un relâchement du bouton droit de la souris.

Exemple d'utilisation :

' (Exemple de Philippe Plançon)
' ---API permettant de déplacer la souris---
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)

' ---Définition des constantes---
Global Const MOUSEEVENTF_ABSOLUTE = &H8000
Global Const MOUSEEVENTF_LEFTDOWN = &H2
Global Const MOUSEEVENTF_LEFTUP = &H4
Global Const MOUSEEVENTF_MIDDLEDO = &H20
Global Const MOUSEEVENTF_MIDDLEUP = &H40
Global Const MOUSEEVENTF_MOVE = &H1
Global Const MOUSEEVENTF_RIGHTDOW = &H8
Global Const MOUSEEVENTF_RIGHTUP = &H10
Global Const BaseTemps = 10 ' Base de temps d'enregistrement

' ---Tableau enregistrant les mouvements de la souris---
Global SourisMagic() As Position
Global NbMouvement As Long
Global
Compte As Long
Global
j As Long

' ---Définition du type---
Type Position
    X
As Long
   
Y As Long
   
Sync As Long ' Enregistrement du temps
End Type

Private Sub
Form_Click()
' ---Affiche le mouvement de la souris---
Timer1.Interval = 0
Timer2.Interval = BaseTemps
Compte = 0
j = 1
End Sub

Private Sub
Form_Load()
' ---Initialisation des contrôles---
Me.WindowState = vbMaximized
NbMouvement = 0
Compte = 0
Timer1.Interval = BaseTemps
End Sub

Private Sub
Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If
Timer1.Interval <> 0 Then
   
' ---Enregistre ce que fais la souris---
   
NbMouvement = NbMouvement + 1
   
ReDim Preserve SourisMagic(NbMouvement)
   
' ---Enregistre que les mouvements---
    ' Attention, la souris se positionne sur l'objet Screen et non sur la feuille,
    ' d'où les constantes 40 et 350 qui correspondent aux bordures et à la hauteur
    ' de l'en-tête de feuille.
   
SourisMagic(NbMouvement).X = (X + Me.Left + 40) / Screen.Width * 65535
    SourisMagic(NbMouvement).Y = (Y + Me.Top + 350) / Screen.Height * 65535
    SourisMagic(NbMouvement).Sync = Compte
    Me.PSet (X, Y), QBColor(Rnd * 15)
End If
End Sub

Private Sub
Timer1_Timer()
' ---Compteur temporel---
Compte = Compte + 1
End Sub

Private Sub
Timer2_Timer()
' ---Fait bouger la souris---
If SourisMagic(j).Sync <= Compte Then
    Call
mouse_event(MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE, _
                     SourisMagic(j).X, SourisMagic(j).Y, 0, 0)
    j = j + 1
End If
' ---Fin du mouvement et fin du programme---
If j = NbMouvement Then
   
Timer2.Interval = 0
End If
' ---Compteur temporel---
Compte = Compte + 1
End Sub

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr