5

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

4

3 回答 3

7

我会使用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)

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

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

于 2012-05-04T00:52:59.637 回答
0

您可以使用pyautogui. 该库包含许多键盘和鼠标模拟。安装pip install pyautogui在cmd中运行。

为了模拟播放/暂停按键,您应该使用pyautogui.press("playpause").

在https://pyautogui.readthedocs.io/en/latest/keyboard.html查看他们的文档以查看支持的键和其他一些键盘功能的列表。

于 2020-08-27T13:09:40.613 回答
0

在安装了所有最新更新的 Windows 10 64 上,这对我不起作用。在它起作用之前我需要这个(第三个参数 2)。

win32api.keybd_event(0xB3,0,2,0)

没有费心去研究它为什么起作用,而是把它扔在那里,因为这篇文章和其他类似的帖子让我很沮丧,因为某种原因不能在我的电脑上工作。

这成功地在我的电脑上暂停/播放了亚马逊音乐。

于 2018-09-28T15:30:49.827 回答