媒体播放/暂停模拟

Pau*_*aul 5 python windows

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

Sku*_*del 5

我会用pywin32.与安装捆绑在一起的是大量的API文档(通常放在类似的地方C:\Python32\Lib\site-packages.)它基本上包含了很多东西,在Win32库中用于Windows中的许多低级任务.

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

您也可以使用SendInput而不是keybd_event但它似乎不被PyWin32包装.SendMessage也是一种选择,但更麻烦.

您需要查找这些特殊按钮的虚拟扫描代码,因为我怀疑char-to-code映射功能会对您有所帮助.你可以在这里找到参考.

然后调用函数是一件简单的事情.下面的片段在我的电脑上暂停了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)
Run Code Online (Sandbox Code Playgroud)

MapVirtualKey为我们提供了keybd_event需要(或更可能是键盘驱动程序)的硬件扫描代码.

请注意,所有这些都是由键盘驱动程序捕获的,因此您实际上无法控制发送击键的位置.有了SendMessage你可以将它们发送到特定的窗口.它通常与媒体密钥无关,因为它们被音乐播放器等拦截.

  • 应当指出,MapVirtualKey生成的扫描代码是不正确或不完整的,但通常并不重要,因为大多数应用程序并不关心扫描代码是什么(您可以简单地传递0)。扫描代码34是“ G”键。播放/暂停的正确扫描代码的前缀字节为0xE0,这意味着应将“ KEYEVENTF_EXTENDEDKEY”标志传递给MapVirtualKey。 (2认同)