我有一台华硕笔记本电脑(F50SF),我正在用 C++ 尝试拦截多媒体键(下一曲目、上一曲目、播放/暂停等),但我不知道该怎么做。我试过GetAsyncKeyState(VK_MEDIA_NEXT_TRACK)
但无济于事。
我知道这是可能的(并且这些键首先可以工作),因为这些键在 Windows Media Player 中工作正常。
有任何想法吗?
我有一台华硕笔记本电脑(F50SF),我正在用 C++ 尝试拦截多媒体键(下一曲目、上一曲目、播放/暂停等),但我不知道该怎么做。我试过GetAsyncKeyState(VK_MEDIA_NEXT_TRACK)
但无济于事。
我知道这是可能的(并且这些键首先可以工作),因为这些键在 Windows Media Player 中工作正常。
有任何想法吗?
问题是华硕提供的 ATK Media 实用程序被完全锁定,而不是发出键盘事件(如普通媒体键),它将它们映射到特定的应用程序。它寻找的应用程序的顺序和名称会根据版本和系统而变化,但幸运的是有一个修复程序!
在阅读了一堆网站一段时间后,我才发现了这个解决方案。
从这篇博文下载 rar 包:http: //3mptylab.blogspot.it/2012/09/how-to-make-asus-notebooks-media-keys.html
停止当前的 DMedia.exe 进程。
转到您的 ATK Media 安装文件夹(通常为 C:\Program Files (x86)\ASUS\ATK Package\ATK Media)并将 DMedia.exe 重命名为 DMedia.exe.old(为了安全起见)。
将您在 RAR 中找到的 DMedia.exe 放入 ATK Media 目录。双击它运行它,但无论如何它都会在启动时运行。
检查媒体密钥是否正常工作。如果可行,请喝啤酒或看电影!
我刚刚在 Win8 Pro 64 位下的华硕 U30Jc 中对其进行了测试,效果很好!该工具实际上将通用键盘事件映射到集成键盘中的媒体键,因此它们可以与为此启用的任何应用程序一起使用(在某些情况下,例如 Winamp,您可能需要启用全局键)。
我在 autohotkey http://www.autohotkey.com/forum/viewtopic.php?p=302923上找到了这个宝石, 它帮助我在笔记本上映射网络、邮件、P1 和 P2 按钮,否则需要一些英国媒体报道中心软件重新映射它们。它不是 C++,但它可以通过查找扫描码帮助您找到正确的方向!
一些笔记本电脑(比如我的华硕 M51Sn)不会为特殊(多媒体)键生成按键。我相信这些键会生成 ACPI 事件。我不知道如何抓住那些。:-\
如果您想查看我已经测试过的内容,请查看我在 SuperUser 的问题。