如何模拟多媒体按键(C语言)?
现代键盘具有特殊的多媒体键,例如“暂停/播放”或“打开网络浏览器”。是否可以编写一个“按下”这些键的程序?
我更喜欢 C 语言的解决方案,但我也接受与语言无关的解决方案。
Modern keyboards have special multimedia keys, e.g. 'Pause/Play' or 'Open Web Browser'. Is it possible to write a program that "presses" these keys?
I would prefer solution in C, but I would accept a language agnostic solution, too.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您正在谈论 Win32 下的编程,请使用 SendInput Windows API。
您需要构建 INPUT 结构,将类型成员设置为 INPUT_KEYBOARD。在 ki 成员(KEYBDINPUT 类型)中,您可以将 vk(虚拟密钥)设置为您所需的 VK 代码(例如,VK_MEDIA_NEXT_TRACK、VK_MEDIA_STOP)。
虚拟键代码:http://msdn.microsoft。 com/en-us/library/dd375731(v=VS.85).aspx
SendInput 函数:http://msdn.microsoft.com/en-us/library/ms646310(v=VS.85).aspx
我尚未测试以下内容,但应该是这样的:
Use the SendInput Windows API, if you are talking about programming under Win32.
You need to build INPUT structures, setting the type member to INPUT_KEYBOARD. In the ki member (KEYBDINPUT type), you can set vk (virtual key) to your desired VK code (for example, VK_MEDIA_NEXT_TRACK, VK_MEDIA_STOP).
Virtual key codes: http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx
SendInput Function: http://msdn.microsoft.com/en-us/library/ms646310(v=VS.85).aspx
I've not tested the following, but should be like this:
比接受的答案更容易的是 keybd_event。 没有结构,只是带有数字参数的调用。
Even more easier than the accepted answer is keybd_event. No structs just a call with numeric parameters.