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