~ 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 ~
~ 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 : OuiDescription : 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.
Constante | Valeur |
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 |