许多键盘具有常见的媒体功能,如下一个/上一个,播放/暂停和停止.他们是否在Windows中使用了一些现有的API,或者他们是否实现了最流行的媒体播放器(WMP,WinAmp,Spotify ......)的特定功能?我拥有的所有具有此功能的键盘似乎都适用于所有内容,无论键盘的年龄与软件的年龄如何,所以我认为可能已经为此构建了一个API.
如果他们在Windows中使用现有的API,我在哪里可以找到有关它的信息?
只是为了澄清:我不是在寻找一种专门与Windows Media Player交互的方法.我想找到一个魔术按钮来触及所有(支持的)媒体播放器 - 如果存在这样的话.
它们只是生成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 */
Run Code Online (Sandbox Code Playgroud)
由于所有窗口都调用DefWindowProc(),因此您只需使用SendInput或keybd_event发送击键即可.
这只是一个虚拟密钥代码 - 对于官方列表,请参阅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\ AppKeyHKLM或HKCU 的注册处的映射(通过关联或直接执行).
一些与旧的链接,但似乎仍然是有效的信息:
| 归档时间: |
|
| 查看次数: |
3633 次 |
| 最近记录: |