Windowsマシン上でPython 2.7を通してキーボードコマンドを送信しようとしています。私はSendKeysモジュールが2.7で動作しないことを理解しています。だから、代わりにwin32 APIからkeybd_eventを使用します。Pythonはウィンドウ上にキーを送信します
送信したいキーは、シフト+左にある単語を選択することです。これはコードです:
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)
これはすべて動作します。しかし、シフトキーは押されたままです!私はプロセスを終了した後でさえ。後にシフトキーを離す唯一の方法は、物理的にcapslockを押した後、shift +キーを押し、次にcapslockをオフにすることです。その問題と非常に似ています。http://www.bigresource.com/Tracker/Track-vb-RvVMlrAbZn/
あなたは何をすべきか考えていますか?
ありがとうございます!
です。 'scanCode = MapVirtualKey(VK_LSHIFT、MAPVK_VK_TO_VSC)'を呼び出し、keybd_eventメソッドに渡してみてください。 – combatdave
返事をありがとう。私はちょうどそれを試みた: scanCode = win32api.MapVirtualKey(win32con.VK_LSHIFT、0) 私はMAPVK_VK_TO_VSCを見つけることができなかったので、そこにゼロを設定します。 しかし、残念ながらそれはまだ動作しません。 – Mohamad
あなたはそれを呼び出した後どの値がscanCodeにありますか? – combatdave