Si vous pouvez m'indiquer l'API qui detecte le mouvement de la souris ? En parlant.
Vous ne sauriez combien je vous serai reconnaissant
Si vous pouvez m'indiquer l'API qui detecte le mouvement de la souris ? En parlant.
Vous ne sauriez combien je vous serai reconnaissant
Salut
En parlant, là je ne comprend pas.
Il y a une source qui pourrait peut être t’intéresser Ajout d'événements Mouse à des composant ne les ayant pas ou pas tous, plus prise en compte de la roulette
En espérant que ce lien te soit utile.
:whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
saut de ligne
OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈
Merci, pour votre réponse, je crois que je me suis trompé de forum! : car je cherche sur les forums VBA Access comment faire fonctionner getinputstate et doevents pour m'indiquer s'il n'y a pas eu lieu de mouvement de souris pendant un laps de temps (c'est pour un écran de veille typiquement access).
je m'excuse encore une fois.
en réponse à votre message :
Je ne sais plus où j'ai vu ce code, mais il se rapproche de la demande sauf qu'il traite un clic ou un appui sur une touche du clavier.
Un Label (Label1) sur Form1(ou UserForm) et ceJ'ai ajouté la Sub ConvTime juste pour voir la durée écoulée entre 2 clics
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Option Explicit Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Private bFIN As Boolean Const BM_CLICK& = &HF5& Private Sub Form_Load() Dim lLastAction As Long 'Valeur du Timer pour la dernière action clavier ou souris Dim lSecondsIdle As Long 'Nombre de secondes depuis la dernière action Dim iCt As Integer If App.PrevInstance Then End bFIN = False ' initialisation du flag qui arrêtera "Loop" Me.Show ' s'assurer que Form1 est affichée Label1 = "00:00:00" SendMessage frmIDLE.hwnd, BM_CLICK&, 0&, 0& Do Until bFIN = True For iCt = 0 To 255 'parcourt toutes les touches If GetAsyncKeyState(iCt) <> 0 Then ' si une touche est enfoncée, remet à zéro le compteur lLastAction = Timer End If DoEvents ' rend la main au système et/ou à l'utilisateur Next iCt lSecondsIdle = Timer - lLastAction ' Retourne le temps d'inactivité (souris et clavier) ConvTime lSecondsIdle Loop End Sub Private Sub Form_Unload(Cancel As Integer) ' Arrête Loop bFIN = True ' S'assure que l'application prend fin End End Sub Sub ConvTime(TM As Long) Dim H&, M&, S& H = TM \ 3600 M = (TM - H * 3600) \ 60 S = TM - H * 3600 - M * 60 'Affiche la durée d'inactivité dans un Label Label1 = Right("00" & CStr(H), 2) + ":" + Right("00" & CStr(M), 2) + ":" + Right("00" & CStr(S), 2) End Sub
Ne pas oublier le tag
si satisfait.
Voter pour toute réponse satisfaisante avec
pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Partager