python - 媒体播放/暂停模拟

标签 python windows

我的键盘包含一行用于执行各种非标准键盘任务的按钮。这些按键包含修改音量、播放或暂停、跳曲等功能。如何使用 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/

相关文章:

php - 在win10上全局用命令行运行PHP脚本

.net - vb.Net- 命名管道 - NamedPipeServerStream - StackOverflowException

c# - .Net 中的大容量、高速文本框

Visual Studio 2017 中的 Python 无法通过搜索路径找到模块

python - 如何检测脚本是从 Django 还是命令提示符运行?

python - sqlite3.操作错误

python - 机器人 Controller 代码: Error when loading

python - 在 Manifest.in 中使用父目录

android - 如何打开Isar检查器

Python 和 Scipy : How to fit a von mises distribution?