Viele Tastaturen haben gemeinsame Medienfunktionen wie next / previous, play / pause und stop. Verwenden sie eine vorhandene API in Windows oder implementieren sie Funktionen speziell für die gängigsten Media Player (WMP, WinAmp, Spotify ...)? Alle Tastaturen, die ich besitze, die diese Funktionalität haben, scheinen mit allem zu funktionieren, unabhängig vom Alter der Tastatur gegenüber der Software, also dachte ich, es könnte eine bereits gebaute API dafür geben.
Wenn sie eine bereits vorhandene API in Windows verwenden, wo finde ich Informationen dazu?
Nur um zu verdeutlichen: Ich suche nicht nach einer Möglichkeit, speziell mit dem Windows Media Player zu interagieren. Ich möchte herausfinden, dass ein einziger magischer Knopf zu treffen ist, um alle (unterstützten) Mediaplayer zu erreichen - falls einer existiert.
Dies ist nur ein virtueller Schlüsselcode - für eine offizielle Liste siehe MSDN .
Dort finden Sie zum Beispiel VK_VOLUME_UP
VK_MEDIA_PLAY_PAUSE
VK_ZOOM
Sogar einige Remotes übersetzen diese Codes, um so kompatibel wie möglich mit bestehender Software zu sein.
EDIT - wie Kommentar:
Diese wurden an dem Tag eingeführt, an dem Windows ME (!) herauskam und immer noch benutzt wird - zumindest, als ich die Registry meines Windows 2008 R2 überprüfte!
Grundsätzlich übersetzt Windows bestimmte VK * in WM_APPCOMMAND Nachrichten mit bestimmten Codes, die die Anwendungen hören ...
Wenn der Schlüssel etwas damit zu tun hat, eine App zu starten (zB Mail, Browser etc.), geschieht die Magie über den Windows Explorer, der das Mapping (entweder von association oder direct exec) aus der Registrierung bei Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ AppKey
- entweder HKLM liest oder HKCU.
Einige Links zu alten, aber scheinbar noch gültigen Informationen:
Sie erzeugen einfach einen virtuellen Schlüsselcode, den DefWindowProc () erkennt. Direkt aus der WinUser.h-Headerdatei kopiert:
%Vor%Da alle Fenster DefWindowProc () aufrufen, können Sie einfach SendInput oder keybd_event verwenden, um den Tastendruck zu senden.