常见媒体播放器功能的Windows API

本文关键字:Windows API 功能 媒体播放器 常见 | 更新日期: 2023-09-27 18:06:17

许多键盘都有常见的媒体功能,如下一键/上一键,播放/暂停和停止。他们是否使用Windows中现有的API,或者他们是否实现了最流行的媒体播放器(WMP, WinAmp, Spotify…)的特定功能?我拥有的所有具有此功能的键盘似乎都可以与任何东西一起工作,无论键盘与软件的年龄如何,所以我认为可能已经为此构建了API。

如果他们使用了Windows中已经存在的API,我在哪里可以找到有关它的信息?

澄清一下:我不是在寻找一种与Windows Media player交互的方式。我想找到一个神奇的按钮,点击到所有(支持的)媒体播放器-如果这样的存在。

常见媒体播放器功能的Windows API

它们只是生成一个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