我的键盘包含一排用于各种非标准键盘任务的按钮。这些键包含修改音量,播放或暂停以及跳过曲目等功能。如何使用Python模拟基本播放/暂停?顺便说一下,我在Windows上。
答案 0 :(得分:5)
我会使用pywin32。与安装捆绑在一起的是大量的API文档(通常放在像C:\Python32\Lib\site-packages
这样的东西。)它实际上包含了很多东西,在Win32库中用于Windows中的许多低级任务。 / p>
安装后,您可以使用keybd_event的包装器。
您也可以使用SendInput
代替keybd_event
,但它似乎不会被PyWin32包装。 SendMessage
也是一种选择,但更麻烦。
您需要查找这些特殊按钮的虚拟扫描代码,因为我怀疑char-to-code映射功能会对您有所帮助。您可以找到参考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
,您可以将它们发送到特定窗口。它通常与媒体密钥无关,因为它们被音乐播放器等截获。
答案 1 :(得分:0)
在Windows 10 64上,这对我不起作用,已安装所有最新更新。我需要它(第三个参数2),然后才能起作用。
win32api.keybd_event(0xB3,0,2,0)
没有去研究为什么,但是将其扔到了那里,因为由于某种原因,我和其他类似的帖子使我感到沮丧,因为它不能在我的电脑上工作。
此操作成功在我的PC上暂停/播放了Amazon Music。
答案 2 :(得分:0)
您可以使用pyautogui
。该库包含许多键盘和鼠标模拟。
要在cmd中运行pip install pyautogui
。
要模拟播放/暂停按键,应使用pyautogui.press("playpause")
。
在https://pyautogui.readthedocs.io/en/latest/keyboard.html上查看其文档,以查看受支持的键和其他一些键盘功能的列表。