有什么方法可以将多媒体控制命令发送到操作系统,如下一首歌曲,暂停,播放,启动等等? 按下时发送的命令Fn +某些映射..key。 我正在制作PC的遥控器,并发送这些命令是至关重要的。发送多媒体命令
发送多媒体命令
回答
不幸的是,在大多数情况下,密钥Fn无法使用Windows API发送,因此 - 使用.NET类。这取决于制造商如何完成此功能。可能是由额外的驱动程序支持,甚至超过操作系统。
您可以检查是否有可能通过尝试使用Windows API code或类似AutoHotKey一些应用程序挂接他们从代码发送FN命令。例如,在我的笔记本电脑上,我无法挂接多媒体命令。
否则,如果你很幸运,请使用SendKeys,如评论中所述。
是的,这只是我的问题,我不能发送Fn +的组合,我猜Fn键没有直接连接到操作系统,但它更多的是一个硬件键,挂钩到键盘控制器,改变键码这将被发送到操作系统。无论如何,我的主要想法不是发送键盘组合,而是导致系统音量升高或降低的事件(或任何它)。 – Milan 2013-02-22 08:59:01
@米兰,这样的事件是非常可靠的设备制造商。你需要以某种方式重用驱动程序。我不相信有任何文件。 – 2013-02-22 10:08:58
您可以使用keybd_event模拟按键按下,你必须模拟键不放,然后以键以正确识别
[DllImport("user32.dll", SetLastError = true)]
public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo);
public const int VK_MEDIA_NEXT_TRACK = 0xB0;
public const int VK_MEDIA_PLAY_PAUSE = 0xB3;
public const int VK_MEDIA_PREV_TRACK = 0xB1;
public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
private void ButtonClick(object sender, EventArgs e)
keybd_event(VK_MEDIA_PREV_TRACK, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
keybd_event(VK_MEDIA_PREV_TRACK, 0, KEYEVENTF_KEYUP, IntPtr.Zero);
}`
- 1. 用tweepy发送多个媒体
- 2. Tibco发送命令
- 3. Python发送命令
- 4. 在多个设备上发送命令
- 5. SSHJ + ExpectIt:无法发送多个命令
- 6. 发送很多命令到cmd
- 7. SSM发送命令失败
- 8. C#发送VNC命令
- 9. IRC - 编程发送命令
- 10. 发送命令到进程
- 11. 从命令行发送值?
- 12. 通过VBA发送命令
- 13. 向多个社交媒体网络发送一条消息
- 14. 如何使用android intent发送多媒体消息?
- 15. 向stdin发送命令并发送发送结束(Ctrl + D)
- 16. 使用Windows窗体发送自定义命令到服务
- 17. 通过命令行发送电子邮件 - 不包括身体
- 18. 通过向命令窗口发送击键来注入命令?
- 19. jenkins-cli.jar mail命令从Windows命令提示符发送邮件
- 20. 如何发送备份或恢复命令到命令窗口
- 21. Python代码通过命令行发送命令
- 22. 如何从C程序向Linux命令发送命令
- 23. 发送命令到其他命令行程序
- 24. 通过HDMI通过命令行发送CEC命令
- 25. 通过命令行发送uiautomator命令并获取返回值
- 26. Visual Studio外部工具发送命令到命令提示符
- 27. 如何使用ssh命令在命令中发送密码
- 28. 从PHP发送命令到Windows命令行(cmd)
- 29. adb:无法从命令行向我的设备发送命令
- 30. 多媒体控制与多媒体键盘在C#
类[的SendKeys(http://msdn.microsoft.com/ en-us/library/system.windows.forms.sendkeys.aspx)将发送命令给现有程序。 – 2013-02-21 22:40:51
请参阅http://stackoverflow.com/questions/8986417/codes-of-multimedia-keys?rq=1 – 2013-02-21 22:41:50
是的,但这并不奏效。当我使用SendKeys.Send(“{MediaNextTrack}”);我收到错误“关键字”MediaNextTrack“无效”。正确使用{}方括号? – Milan 2013-02-21 22:59:07