Buongiorno a tutti
Per un'applicazione che gestisce la fonia, ho bisogno di intercettare i tasti premuti sulla tastiera (oppure su un Mouse3D che simula i tasti F12-F24) per le operazioni di "risposta chiamata", "accetta chiamata", ecc. ecc.
Siccome ho bisogno che i tasti vengano intercettati anche quando il Focus � su un'altra applicazione e che questi tasti vengano gestiti solo dalla mia applicazione, ho implementato il "Global Hook" mediante le API di Windows "SetWindowsHookEx"
Tutto funziona correttamente...se il Focus si trova su un documento Word e viene "premuto" l'F15 (ad esempio), la mia applicazione lo intercetta, lo usa, e non viene inoltrato al documento Word.
Il problema � che, a volte, l'hook dei tasti tastiera si ferma...non vengono pi� catturati i tasti tastiera.
Leggendo Online, sembrerebbe che Windows (7 e successivi), se non viene ritornato un esito alle API entro un tot di millisecondi, smette di "fornire" all'applicazione i tasti tastiera.
Per evitare questo (e accrocchi nel Registry), vorrei inserire il codice di Gestione dell'Hook in un'apposita classe ed eseguire l'intera classe in un Thread separato che sia per� in grado di notificare al Form Main gli eventi da tastiera.
In questo modo, la classe/thread, notificherebbe subito la risposta alle API, mentre il formMain si pu� prendere tutto il tempo per eseguire le operazioni legate a quel tasto tastiera.
E' possible fare una cosa del genere o si puo solo eseguire delle Sub/functions in un thread separato?
Se è possibile farlo, credo che all'avvio dell'applicazione del Form Main, io non debba piu eseguire direttamente il form Main ma debba invece avviare una classe/sub Main che avvii un thread per la classe "hook" ed esegua il form Main...è corretto?
Grazie