常见媒体播放器功能的Windows API
本文关键字:Windows API 功能 媒体播放器 常见 | 更新日期: 2023-09-27 18:06:17
许多键盘都有常见的媒体功能,如下一键/上一键,播放/暂停和停止。他们是否使用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 */
由于所有的窗口调用DefWindowProc(),你可以简单地使用SendInput或keybd_event发送击键
这只是一个虚拟密钥代码-官方列表请参阅MSDN。
这里有VK_VOLUME_UP
, VK_MEDIA_PLAY_PAUSE
, VK_ZOOM
甚至一些远程翻译成这些代码,以尽可能与现有软件兼容。
EDIT - as per comment:
这些是在Windows ME(!)出来的时候引入的,现在还在使用——至少当我检查我的Windows 2008 R2的注册表时是这样的!
基本上Windows将某些VK*转换为WM_APPCOMMAND消息,其中包含应用程序侦听的特定代码…
如果键与启动应用程序(即邮件,浏览器等)有关,则通过Windows资源管理器读取映射(通过关联或直接执行)从Software' Microsoft' Windows' CurrentVersion' Explorer' AppKey
注册表- HKLM或HKCU。
一些链接有旧的,但似乎仍然有效的信息:
- 增强的键盘和Windows
- Archive: HID Audio Controls and Windows
- 存档:键支持,键盘扫描码,和Windows