Arcy Posté(e) le 11 décembre 2016 Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Aloyse57 Posté(e) le 11 décembre 2016 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Arcy Posté(e) le 12 décembre 2016 Auteur Partager Posté(e) le 12 décembre 2016 C'est bon, GetAsyncState() fonctionne à merveille, associé à un BackgroundWorker :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.