До сих пор я пытался отправить их через 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',
но это не сделало ничего, кроме того, что вы могли ожидать. Он будет делать обычные числа, а не числа, специфичные для numpad.
pyautogui.press("num 3")
например, вообще не работает, а
pyautogui.press("3")
просто отправляет 3
Я также попробовал SendKeys в win32api, но там вообще нет перечисленных чисел, и, просматривая исходный код, похоже, они включены (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)
Мне нужно иметь возможность использовать клавиши с цифровыми клавишами, потому что у меня есть установка, использующая эмулированную мышь, которую мне нужно программно контролировать с помощью этих клавиш. Я нашел обходной путь, отключив и повторно включив эмуляцию (я использую NeatMouse) с помощью комбинации клавиш, которая работает (и может быть отправлена с помощью SendKeys), потому что вы редко печатаете и используете мышь одновременно, но Мне все еще очень любопытно, возможно ли то, что я хочу сделать, напрямую.
Повторюсь, я хочу напрямую нажимать клавиши NUMPAD через python.
Спасибо!