C# 常用媒体播放器功能的Windows API?
许多键盘都有常用的媒体功能,如下一个/上一个、播放/暂停和停止。他们是在Windows中使用一些现有的API,还是实现了最流行的媒体播放器(WMP、WinAmp、Spotify…)特有的功能?我拥有的所有具有此功能的键盘似乎都能与任何东西一起工作,而不管键盘和软件的年龄,所以我认为可能已经有了一个用于此功能的API 如果他们在Windows中使用已经存在的API,我在哪里可以找到有关它的信息C# 常用媒体播放器功能的Windows API?,c#,windows,C#,Windows,许多键盘都有常用的媒体功能,如下一个/上一个、播放/暂停和停止。他们是在Windows中使用一些现有的API,还是实现了最流行的媒体播放器(WMP、WinAmp、Spotify…)特有的功能?我拥有的所有具有此功能的键盘似乎都能与任何东西一起工作,而不管键盘和软件的年龄,所以我认为可能已经有了一个用于此功能的API 如果他们在Windows中使用已经存在的API,我在哪里可以找到有关它的信息 我只是想澄清一下:我并不是专门寻找一种与Windows Media player交互的方式。我想找到一个
我只是想澄清一下:我并不是专门寻找一种与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_事件发送击键。这只是一个虚拟键代码-有关正式列表,请参阅 例如,您可以在这里找到
VK\u音量向上
VK\u媒体播放暂停
VK\u缩放
甚至有些遥控器也转换成这些代码,以便尽可能与现有软件兼容
编辑-根据评论:这些都是在Windows ME(!)问世并仍在使用的那一天引入的,至少在我检查Windows 2008 R2的注册表时是这样 基本上,Windows将某些VK*转换为WM_APPCOMMAND消息,其中包含应用程序侦听的特定代码…
如果该键与启动应用程序有关(如邮件、浏览器等),那么神奇的事情就会发生在Windows资源管理器上,它从注册表中读取映射(通过关联或直接执行),地址为
Software\Microsoft\Windows\CurrentVersion\Explorer\AppKey
-HKLM或HKCU
与旧但似乎仍然有效的信息的一些链接: