一尘不染

媒体播放/暂停模拟

python

我的键盘包含用于执行各种非标准键盘任务的一行按钮。这些键包含诸如修改音量,播放或暂停以及跳过曲目等功能。如何使用Python模拟基本播放/暂停?顺便说一下,我在Windows上。


阅读 154

收藏
2021-01-20

共1个答案

一尘不染

我会用pywin32。与安装捆绑在一起的是大量的API文档(通常放在C:\Python32\Lib\site- packages。),它实际上包装了Win32库中的许多内容,该库用于Windows中的许多低级任务。

安装后,您可以使用keybd_event的包装器。

您也可以使用SendInput代替,keybd_event但PyWin32似乎没有使用它。SendMessage也是一种选择,但比较麻烦。

您需要查找这些特殊按钮的虚拟扫描代码,因为我怀疑字符到代码的映射功能会在这里为您提供帮助。您可以在此处找到参考。

然后,只需调用该函数即可。下面的代码段将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你可以将它们发送到特定的窗口。媒体密钥通常无关紧要,因为它们会被音乐播放器等截获。

2021-01-20