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.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager