Отправить нажатие клавиши по KeyID для конкретной программы в Python - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь отправить нажатия клавиш определенной программе, но я надеюсь, что смогу использовать все клавиши на клавиатуре, и SendKeys, кажется, очень ограничен.

В настоящее время я использую:

from win32com.client import Dispatch

wsh = Dispatch('WScript.Shell')
wsh.AppActivate('Program_Name')
wsh.SendKeys('{PGUP}')

Есть ли способ отправить нажатие клавиши KeyID в указанную программу или другой способ достижения моей цели?Например, код сканирования NumPad0 совпадает с insert (82), однако они имеют уникальный KeyID.Иначе, есть ли другой способ отправки нажатий клавиш в данную программу?

Единственный известный мне способ отправить нажатие клавиш с помощью KeyID - это использовать win32api:

from win32 import win32api

key_id = 0x60  # NumPad0 KeyID
win32api.keybd_event(key_id, 0, win32con.KEYEVENTF_KEYUP, 0)

Однако это имитирует нажатие клавиши на клавиатуре, как мне кажется, поэтому вся система получает событие.

...