Visualizzazione dei risultati da 1 a 1 su 1

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    54

    Classe in un Thread separato

    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
    Ultima modifica di mmjc23; 28-12-2016 a 17:21

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.