2012-04-16 9 views
0

J'ai créé une application qui écoute un raccourci global (Alt + Espace actuellement), lorsque j'appuie sur la touche de raccourci lorsque Google Chrome est actif, mon application se concentre mais ouvre également le menu contextuel de Chrome (menu clic droit). J'ai utilisé la DLL suivante pour implementing the keyboard hook. Puis-je empêcher que cela se produise?Global Hotkeys - C#

Si c'est le cas, comment? Ce n'est pas un problème majeur, mais s'il y a une façon dont vous pouvez effacer toutes les touches de raccourci existantes liées à cette combinaison, alors je voudrais apprendre cela.

EDIT

La réponse que j'ai choisi comme étant la bonne, est la bonne mais pour mon problème. Pour mettre en œuvre correctement cette fonction en C# WinForm j'ai utilisé ce tutoriel qui a été très utile: http://www.dreamincode.net/forums/topic/180436-global-hotkeys/

+2

"Implémenter le crochet du clavier" c'est votre problème. Utilisez 'RegisterHotkey' au lieu d'abuser des crochets du clavier. Il y a un certain nombre de doublons: http://stackoverflow.com/search?q=user%3A445517+registerhotkey&submit=search – CodesInChaos

+0

@CodeInChaos vient d'implémenter la méthode RegisterHotkey dans mon application, une méthode beaucoup plus propre, va mettre à jour ma question avec votre suggestion . Merci – Nate

Répondre

2

La section FAQ de l'article lié contient votre réponse:

Question

J'ai besoin de supprimer certaines frappes après les avoir traitées.

Réponse

Il suffit de définir la propriété e.Handled à true dans les événements clés que vous avez traitées. Il empêche les frappes de touches traitées par d'autres applications .

+0

Quelle bêtise de ma part, merci d'avoir pris le temps! – Nate

+0

Résout le problème immédiat, mais toujours clairement la mauvaise solution. – CodesInChaos

+0

@CodeInChaos - Bien sûr, mais j'ai répondu à la question posée. La question est très directe. J'écrivais en fait un commentaire pour soutenir votre suggestion d'utiliser 'RegisterHotkey'. Je suppose que ce n'est pas nécessaire maintenant. –