我的键盘包含一行用于执行各种非标准键盘任务的按钮。这些按键包含修改音量、播放或暂停、跳曲等功能。如何使用 Python 模拟基本的播放/暂停?顺便说一句,我在 Windows 上。
最佳答案
我会使用 pywin32 .与安装捆绑在一起的是大量的 API 文档(通常放置在 C:\Python32\Lib\site-packages
之类的地方。)它基本上包装了 Win32 库中的很多东西用于 Windows 中的许多低级任务。
安装后,您可以使用 keybd_event 的包装器.
您也可以使用 SendInput
而不是 keybd_event
但它似乎没有被 PyWin32 包装。 SendMessage
也是一个选项,但比较麻烦。
您需要查找那些特殊按钮的虚拟扫描码,因为我怀疑字符到代码的映射函数在这里能否帮到您。您可以找到引用 here .
那么调用函数就是简单的事情了。下面的代码片段在我的电脑上暂停了 Chuck Berry。
>>> import win32api
>>> VK_MEDIA_PLAY_PAUSE = 0xB3
>>> hwcode = win32api.MapVirtualKey(VK_MEDIA_PLAY_PAUSE, 0)
>>> hwcode
34
>>> win32api.keybd_event(VK_MEDIA_PLAY_PAUSE, hwcode)
MapVirtualKey
为我们提供了 keybd_event
需要的硬件扫描代码(或者更可能是键盘驱动程序。)
请注意,所有这些都被键盘驱动程序捕获,因此您实际上无法控制发送击键的位置。使用 SendMessage
,您可以将它们发送到特定窗口。媒体 key 通常无关紧要,因为它们会被音乐播放器等拦截。
关于python - 媒体播放/暂停模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441110/