许多键盘具有常用的媒体function,如下一首/上一首,播放/暂停和停止。 他们是否在Windows中使用了一些现有的API,或者他们是否实现了最受欢迎的媒体播放器(WMP,WinAmp,Spotify等)特有的function? 我拥有的具有这种function的所有键盘似乎都适用于所有的东西,无论键盘与软件的年龄大小如何,所以我认为可能有一个已经构build好的API。
如果他们在Windows中使用已经存在的API,我可以在哪里find关于它的信息?
只是为了澄清:我不是在寻找专门与Windows Media Player交互的方式。 我想find一个魔法button来触及所有(支持)媒体播放器 – 如果存在的话。
这只是一个虚拟键码 – 对于官方列表请参阅MSDN 。
在那里你可以找到例如VK_VOLUME_UP
VK_MEDIA_PLAY_PAUSE
VK_ZOOM
即使是一些遥控翻译到这些代码是尽可能与现有的软件兼容..
编辑 – 根据评论:
这些是在Windows ME(!)出来并且仍在使用的当天重新引入的,至少当我查看了Windows 2008 R2的注册表时!
基本上,Windows将特定的VK *转换为WM_APPCOMMAND消息,并使用应用程序监听的某些代码。
如果密钥与启动一个应用程序(即邮件,浏览器等)有关,那么魔法通过Windows资源管理器发生,该资源管理器从Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ AppKey
Registry注册表中读取映射(通过关联或直接执行) Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ AppKey
– HKLM或HKCU。
一些旧的,但似乎仍然有效的信息链接:
他们只是生成DefWindowProc()识别的虚拟键码。 从WinUser.h头文件直接复制:
#if(_WIN32_WINNT >= 0x0500) #define VK_BROWSER_BACK 0xA6 #define VK_BROWSER_FORWARD 0xA7 #define VK_BROWSER_REFRESH 0xA8 #define VK_BROWSER_STOP 0xA9 #define VK_BROWSER_SEARCH 0xAA #define VK_BROWSER_FAVORITES 0xAB #define VK_BROWSER_HOME 0xAC #define VK_VOLUME_MUTE 0xAD #define VK_VOLUME_DOWN 0xAE #define VK_VOLUME_UP 0xAF #define VK_MEDIA_NEXT_TRACK 0xB0 #define VK_MEDIA_PREV_TRACK 0xB1 #define VK_MEDIA_STOP 0xB2 #define VK_MEDIA_PLAY_PAUSE 0xB3 #define VK_LAUNCH_MAIL 0xB4 #define VK_LAUNCH_MEDIA_SELECT 0xB5 #define VK_LAUNCH_APP1 0xB6 #define VK_LAUNCH_APP2 0xB7 #endif /* _WIN32_WINNT >= 0x0500 */
由于所有窗口调用DefWindowProc(),您可以简单地使用SendInput或keybd_event发送击键。