许多键盘具有常见的媒体功能,如下一个/上一个,播放/暂停和停止。他们是否在Windows中使用了一些现有的API,或者他们是否实现了最流行的媒体播放器(WMP,WinAmp,Spotify ......)的特定功能?我拥有的所有具有此功能的键盘似乎都适用于所有内容,无论键盘的年龄与软件的年龄如何,所以我认为可能已经为此构建了一个API。
如果他们在Windows中使用现有的API,我在哪里可以找到有关它的信息?
只是为了澄清:我不是在寻找一种专门与Windows Media Player交互的方法。我想找到一个魔术按钮来触及所有(支持的)媒体播放器 - 如果存在这样的话。
答案 0 :(得分:6)
他们只生成一个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发送击键。
答案 1 :(得分:6)
这只是一个虚拟密钥代码 - 对于正式列表,请参阅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
的注册表中读取映射(通过关联或直接执行) - HKLM或HKCU。
有些旧的链接,但似乎仍然是有效的信息: