Вопрос по windows, python – Media Play / Pause Simulation

4

Моя клавиатура содержит ряд кнопок для различных нестандартных задач клавиатуры. Эти клавиши содержат такие функции, как изменение громкости, воспроизведение или пауза, а также пропуск дорожек. Как я могу симулировать базовую игру / паузу с Python? Я на Windows, кстати.

Ваш Ответ

2   ответа
5

pywin32, При установке поставляется большое количество API-документов (обычно размещаются вC:\Python32\Lib\site-packages.) По сути, он содержит множество вещей в Win32-библиотеке, которая используется для многих низкоуровневых задач в Windows.

После установки вы можете использовать обертку дляkeybd_event.

You could also use SendInput instead of keybd_event but it doesn't seem to be wrapped by PyWin32. SendMessage is also an option but more cumbersome.

Вам нужно будет найти код виртуального сканирования для этих специальных кнопок, так как я сомневаюсь, что здесь вам помогут функции сопоставления символов с кодом. Вы можете найти ссылкуВот.

Тогда это просто вопрос вызова функции. Фрагмент ниже останавливает Чака Берри на моем компьютере.

>>> 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 Вы можете отправить их в определенное окно. Обычно это не имеет значения для медиа-клавиш, поскольку они перехватываются музыкальными проигрывателями и тому подобным.

Error: User Rate Limit ExceededKEYEVENTF_EXTENDEDKEYError: User Rate Limit Exceeded
0

все последние обновления установлены. Мне это нужно (3-й параметр 2), прежде чем оно сработает.

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

не удосужился заглянуть вwhy это работает, но выкинул это там, так как этот и другие подобные посты меня расстроили, так как по какой-то причине я не работал на моем ПК.

Это успешно приостановило / воспроизвело Amazon Music на моем ПК.

Похожие вопросы