Bonjours, j'ai essayé d'émuler un Glisser-déplacer en utilisant les fonction suivantes:avec le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Public Declare Sub keybd Lib "user32" Alias "keybd_event" _ (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, _ lpPoint As POINTAPI) As Long 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) Public Const MOUSEEVENTF_MOVE = &H1 Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_LEFTUP = &H4 Public Const MOUSEEVENTF_RIGHTDOWN = &H8 Public Const MOUSEEVENTF_RIGHTUP = &H10 Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 Public Const MOUSEEVENTF_MIDDLEUP = &H40 Public Const MOUSEEVENTF_ABSOLUTE = &H8000 Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long Public Type POINTAPI X As Long Y As Long End TypeGorder dépend d'un timer qui effectue le premier puis le segond clic en mesurant l'heure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 If Chose = 4 Then If GDOrder = False Then Call SetCursorPos(Xx, Yy) mouse_event MOUSEEVENTF_LEFTDOWN, Xx, Yy, 0, 0 GDOrder = True Else Call SetCursorPos(XXX, YYY) mouse_event MOUSEEVENTF_LEFTUP, XXX, YYY, 0, 0 GDOrder = False End If End If If Chose = 5 Then If GDOrder = False Then Call SetCursorPos(Xx, Yy) mouse_event MOUSEEVENTF_RIGHTDOWN, Xx, Yy, 0, 0 GDOrder = True Else Call SetCursorPos(XXX, YYY) mouse_event MOUSEEVENTF_RIGHTUP, XXX, YYY, 0, 0 GDOrder = False End If End If If Chose = 6 Then If GDOrder = False Then Call SetCursorPos(Xx, Yy) mouse_event MOUSEEVENTF_MIDDLEDOWN, Xx, Yy, 0, 0 GDOrder = True Else Call SetCursorPos(XXX, YYY) mouse_event MOUSEEVENTF_MIDDLEUP, XXX, YYY, 0, 0 GDOrder = False End If End If
(ou chose et les autres variables sont des variables de controle.)
je me demandais pourquoi ça ne marchais pas: en effet, il me fait bien un clicdown à un endroit puis un clicup à l'autre mais il n'arrive pas à le déplacer en continu.
pour le déplacer en continu, j'utilise la fonction setcursorpos avec un calcul de trajectoire mais je ne crois pas que la cfonction setcursorpos interrompe le clic non?
merci d'avance (si vous avez lu le sujet jusque-là c'est déja pas mal ).
salut
Partager