【发布时间】:2022-09-27 09:34:02
【问题描述】:
对于某些 GUI 自动化,我需要为小键盘加号发送击键。 (出于某种愚蠢的原因,我正在与之交互的古老软件区分小键盘加号和顶行加号......)
我可以使用pyautogui.press(\'num1\') 从小键盘发送1 击键,但\'num+\' 和\'numplus\' 等似乎不存在。
对于某些 GUI 自动化,我需要为小键盘加号发送击键。 (出于某种愚蠢的原因,我正在与之交互的古老软件区分小键盘加号和顶行加号......)
我可以使用pyautogui.press(\'num1\') 从小键盘发送1 击键,但\'num+\' 和\'numplus\' 等似乎不存在。
经过一番挖掘,我发现pyautogui.platformModule 包含此映射。它因您的操作系统而异; Windows 和 Linux 解决方案显示在下面的代码块中——Mac 应该可以有类似的东西。
可以对其他键进行类似的键盘映射。我找不到 Linux 键映射的好来源,但可以在 here 找到 Windows 键映射。
import pyautogui as gui
gui.platformModule.keyboardMapping.update({'numplus':gui.platformModule._display.keysym+_to_keycode(gui.platformModule.Xlib.XK.string_to_keysym('KP_Add'))}) # Linux: KP_Add found by random googling
gui.platformModule.keyboardMapping.update({'numplus':0x6B}) # Windows: VK_ADD from https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
gui.press('numplus')
请注意,pyautogui.platformModule 来自文件_pyautogui_x11 或_pyautogui_win 等,只是别名为platformModule。
【讨论】: