Programmazione.it v6.2
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Chat Forum
Rilevare globalmente gli eventi del mouse in C#
Scritto da Rocco Galati il 10-03-2010 ore 10:34
A volte, può essere necessario permettere all'applicazione che si sta sviluppando di rilevare gli eventi provenienti dal mouse o dalla tastiera anche quando quest'ultima viene eseguita in background; questo aspetto può essere importante se si desidera fare in modo che il programma cambi il suo comportamento a seconda delle azioni dell'utente.

Ad esempio, nei client di chat si è solito aggiungere un'indicazione sullo stato della sessione, nel caso in cui l'utente si allontani dalla postazione e quindi non si rilevino più attività provenienti dalle periferiche di input.

Il supporto tecnico di Microsoft suggerisce di utilizzare la funzione SetWindowsHookEx dal file di libreria User32.ddl, che installa una procedura di monitor per osservare i cambiamenti che avvengono all'interno del sistema. Tuttavia, questa procedura opera correttamente solo se l'applicazione è mantenuta attiva dall'utente.

In un suo articolo, George Mamaladze propone di sostituire gli hook presenti nel codice proposto dai tecnici Microsoft con quelli di tipo globale WH_MOUSE_LL Hook e WH_KEYBOARD_LL Hook per ottenere il funzionamento cercato, estraendo le informazioni ottenute per utilizzarle all'interno della classe EventArgs, che è una classe contenitore per tutte le altre dedicate alla gestione di eventi.

Il codice di esempio scaricabile dal link indicato nell'articolo contiene alcune migliorie e correzioni, che rendono la procedura proposta dall'autore ancora più veloce ed efficiente.
Precedente: Decompilare il codice dell'architettura ARM (1/2)
Successiva: Una soluzione parallela per la moltiplicazione di matrici in Java (2/3)
Copyright Programmazione.it™ 1999-2009. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.706 secondi. Sito ottimizzato per Mozilla Firefox. Powered by Kyron.