Jump to content

Récupérer un évènement quand la fenêtre est en arrière-plan


Arcy

Recommended Posts

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 !

Link to comment
Share on other sites

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 :ouioui:. La méthode du Hook, est l'équivalent du TSR d'autrefois, donc devrait fonctionner.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...