2010-12-07 5 views
7

Es gibt ein Postsystemweiten globalen Hotkey in C# hereRahmen anwendungsweiten Hotkey in C#

I anwendungsweiten Hotkey so gesetzt werden soll eingestellt werden, dass, wenn der Benutzer einen Hotkey auf jedes Kind Fenster eines presst Anwendung wird ein bestimmtes Fenster empfangen und verarbeitet.

Danke.

Antwort

6

Sie können ein Basisformular für Ihre Anwendung erstellen und die keypreview-Eigenschaft auf true festlegen und das Keydown-Ereignis behandeln, damit alle Ihre Formulare die gleiche Schlüsseldefinition haben.

Sie können auch die folgende Routine verwenden, um einen Hotkey für Ihre Formulare zu registrieren, aber in dieser Methode müssen Sie die gleiche Methode beim Laden Ereignis jedes Formulars aufrufen.

Sie können auch die folgenden nicht verwalteten Methoden von user32.dll verwenden, aber natürlich würde ich das nicht vorschlagen.

+0

Ich versuchte mit RegisterHotKey, aber da es systemweit funktioniert, kann ich die relevanten Schlüssel in anderen Anwendungen oder anderen Instanzen der gleichen Anwendung nicht verwenden. – Liton

+0

Sie sollten den Ansatz der gemeinsamen Basisform verwenden, wenn Sie nur wollen, dass es anwendungsweit funktioniert. – EricLaw