Ich möchte eine Option für einen Medienplayer bereitstellen, an dem ich arbeite, damit die Medienschlüssel auch dann funktionieren, wenn sie minimiert sind. Was ist der beste Weg, diese Schlüsselereignisse in C # zu erfassen und zu verarbeiten, ohne den Fokus zu haben? Ist es überhaupt möglich?
Ich denke nicht, dass es einen einfachen Weg gibt, dies zu tun, aber dies (Verwendung von Window Messages zur Implementierung von Global System Hooks in C #) Projekt kann helfen. Ich habe den folgenden Code hinzugefügt:
%Vor%an den Konstruktor von Form1 von GlobalHookTest und konnte alle Tastaturereignisse überwachen.
Sie können das aber nur mit etwas globalem Hooking tun - Quellcode und Details finden Sie unter
BEARBEITEN:
Passen Sie auf, dass einige Media Keys in APP_COMMAND
Windows-Nachrichten übersetzt werden - also sollten Sie darüber nachdenken, diese auch einzubinden.
Wenn Sie möchten, dass Ihr Mediaplayer automatisch auf dem Druck eines (Medien-) Schlüssels startet, sehen Sie die Links hier .
Verwenden Sie globale Tastatur-Hooks ( Verarbeiten von globalen Maus- und Tastatur-Hooks in C # )
Erstellen Sie einfach den Hook, wenn Sie Ihre App / Ihr Formular starten. Sie können KeyEventHandlers für den globalen Schlüssel nach oben, nach unten und auf Ereignisse festlegen. Sie können dann überprüfen, ob es sich um die Tastenkombination handelt, nach der Sie suchen.