到目前为止,我已经尝试使用pyautogui发送它们,但是它不起作用。我希望,因为在源代码中它显示了这一点:
'num multiply': '*',
'num divide': '/',
'num add': '+',
'num plus': '+',
'num minus': '-',
'num sub': '-',
'num enter': 'enter',
'num 0': '0',
'num 1': '1',
'num 2': '2',
'num 3': '3',
'num 4': '4',
'num 5': '5',
'num 6': '6',
'num 7': '7',
'num 8': '8',
'num 9': '9',
但是,除了您可能期望的以外,它没有做任何其他事情。它将执行常规数字,而不执行特定于小键盘的数字。
pyautogui.press("num 3")
例如,根本不起作用,并且
pyautogui.press("3")
只发送一个3
我也尝试过使用win32api的SendKeys,但是根本没有列出numkey,并且在那边查看源代码,看起来好像已经包含了它们(https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes),但是不支持在Python实现中...所以这不起作用:
>>> import win32api
>>> import win32com.client
>>> shell = win32com.client.Dispatch("WScript.Shell")
>>> shell.SendKeys("{NUMPAD7}")
返回
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024809), None)
我需要能够使用数字键盘键,因为我有一个使用模拟鼠标的设置,需要通过这些键以编程方式进行控制。我想出了一种解决方法,可以通过一种有效的按键组合(可以与SendKeys一起发送)来禁用和重新启用仿真(我正在使用NeatMouse),因为您很少同时键入和使用鼠标,但是我仍然很想知道我想做的事是否真的可以直接实现。
重申一下,我想直接通过python按下NUMPAD键。
谢谢!
答案 0 :(得分:0)
基于官方文档:PyAutoGUI - Keyboard Control Functions 似乎您的代码无法正常工作的唯一问题是“ num”和“ 3”之间的空格。如果文档正确,则只能更改:
pyautogui.press("num 3")
收件人:
pyautogui.press("num3")