Arcy Posté(e) le 11 décembre 2016 Posté(e) le 11 décembre 2016 Bonjour, J'ai un programme en C# qui effectue du traitement en premier-plan. Le souci est qu'à terme, l'application ne sera plus visible et j'aurai besoin d'arrêter certaines fonctions via l'appuie de touches/combinaisons de touche. J'ai bien trouvé quelques liens sur internet mais c'est plutôt flou pour moi, ça consisterai à importer des DLL de Windows et faire des évènements dessus. https://social.msdn.microsoft.com/Forums/fr-FR/89b905a2-37d0-4d11-8467-cc9cf8146964/capturer-une-touche-en-dehors-dune-windows-form-et-sans-le-focus?forum=visualcsharpfr Si vous avez d'autres pistes ou des explications, ça m'intéresse :) Merci à vous !
Aloyse57 Posté(e) le 11 décembre 2016 Posté(e) le 11 décembre 2016 La solution, bâtarde, consiste d'un côté à implanter dans l'appli un test sur le contenu/la présence d'un fichier sur le disque, ou encore d'une valeur dans une BDD et de l'autre côté de créer une appli qui intercepte le clavier pour écrire le fichier/contenu/BDD. D'un côté vous aurez le pseudo service et de l'autre une interface de commande de ce service. Pour répondre à la question de la DLL, je pense qu'il faut utiliser User32.dll, GetAsyncKeyState( ) Sinon, mais là ça fait longtemps que je n'ai pas testé (je ne sais pas si ça fonctionne encore dans W7/8/10) il y a la solution du TSR, si vous aimez l'ASM. Edit: j'aurais dû lire le lien . La méthode du Hook, est l'équivalent du TSR d'autrefois, donc devrait fonctionner.
Arcy Posté(e) le 12 décembre 2016 Auteur Posté(e) le 12 décembre 2016 C'est bon, GetAsyncState() fonctionne à merveille, associé à un BackgroundWorker :)
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.