Ho un programma con un Timer. Se l'utente si allontana dal computer, dopo 30 secondi, il timer si dovrebbe fermare...
Qual'è il metodo più semplice che mi consigliate?
Ho un programma con un Timer. Se l'utente si allontana dal computer, dopo 30 secondi, il timer si dovrebbe fermare...
Qual'è il metodo più semplice che mi consigliate?
Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke
devi vedere se c'è movimento del mouse /pressione dei tasti della tastiera
DYNAMIC+ [ E-mail ]
Secondo me non si può fare!
E come faccio?Originariamente inviato da DYNAM!C+
devi vedere se c'è movimento del mouse /pressione dei tasti della tastiera
Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke
Originariamente inviato da goku370
E come faccio?
devi installare un hook ( tastiera e mouse ), tramite SetWindowsHookEx ( è una api di win32 ), a livello globale, mettendo le procedure di hook in una dll esterna (obbligatorio).
DYNAMIC+ [ E-mail ]
Secondo me non si può fare!
Qualche esempio....
Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke
http://www.codeguru.com/vb/gen/vb_system/keyboard/article.php/c4829/Originariamente inviato da goku370
Qualche esempio....
DYNAMIC+ [ E-mail ]
Secondo me non si può fare!
Sei molto gentile, ma accidenti io non ci capisco più niente.....
Ma a cosa serve esattamente quell'API. Non riesco a capire cosa devo fare.... :master:
Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke
ti spigo, terra terra.
quando l'utente preme un tasto, sposta il mouse, il tuo hook ricevera' una notifica, con la quale ti salverai la data/ora dell'ultimo "evento" dell'utente.
se, una volta che controlli, non è successo niente negli ultimi 30sec allora fermi il tuo timer!
quando tu "registri" il hook, con SetWin..., spefichi una funzione nella quale verrai "avvertito", oltre alla funzione, il tipo di hook (tastiera, mouse...) e l'ambito (globale, x un processo o thread, ecc)
DYNAMIC+ [ E-mail ]
Secondo me non si può fare!
Allora io ho inserito questo codice nelle Dichiarazioni generali del form:
Quello che non ho capito è che codice utilizzare poi....codice:Public Declare Function SetWindowsHookEx Lib "user32" _ Alias "SetWindowsHookExA" (ByVal idHook As Long, _ ByVal lpfn As Long, _ ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long
Una tecnologia sufficientemente avanzata è indistinguibile dalla magia. Terza legge di Clarke
idHook sarebbe il tipo di hook (tastiera mouse...)
lpfn è l'indirizzo della funzione che ricevera' "gli avvisi" degli eventi del mouse/tastiera
hmod è il handle della DLL che carichi tramite LoadLibrary e che contiene la funzione citata sopra
dwThreadId lo metti a 0
DYNAMIC+ [ E-mail ]
Secondo me non si può fare!