Python отправить ключи на окнах - PullRequest
1 голос
/ 27 июля 2011

Я пытаюсь отправить команды клавиатуры через python 2.7 на машине с Windows. Я понимаю, что модуль SendKeys не работает с 2.7. Поэтому я использую keybd_event из API Win32 вместо этого.

Ключ, который я хочу отправить, это Shift + Влево, чтобы выбрать слово. Это код:

win32api.keybd_event(win32con.VK_LSHIFT,0,win32con.KEYEVENTF_EXTENDEDKEY | 0,0)
win32api.keybd_event(win32con.VK_LEFT,0,0,0)
win32api.keybd_event(win32con.VK_LSHIFT,0,win32con.KEYEVENTF_EXTENDEDKEY | win32con.KEYEVENTF_KEYUP,0)

Это все работает. Однако клавиша Shift остается нажатой! Даже после того, как я убью процесс. Единственный способ отпустить клавишу Shift после этого - это физически нажать на колпачок, затем Shift + клавишу, а затем колпачок выключить. Это очень похоже на эту проблему: http://www.bigresource.com/Tracker/Track-vb-RvVMlrAbZn/

Ты хоть представляешь, что делать?

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 29 июля 2011

SendInput из Windows API может быть полезным. Недавняя запись в блоге Рэймонда Чена предполагает, что вы даже можете использовать ее для управления запуском / остановкой заставки.

0 голосов
/ 07 августа 2016

Вы можете попробовать пакет pywin32, обратите внимание, что он старый и не поддерживается.

Вот пример из StackOverflow

0 голосов
/ 28 июля 2011

Хотя я не смог найти способ заставить win32api работать со сдвигом, я сейчас использую SendKeys из http://code.google.com/p/sendkeys-ctypes/, который, похоже, работает с 2.7.

...