Python在Windows上发送按键
我正在尝试在Windows机器上通过Python 2.7发送键盘命令。我知道SendKeys模块在2.7上无法使用,所以我改用win32 API中的keybd_event。
我想发送的按键是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键松开的办法是先按一下大写锁定键,然后再按shift加一个键,最后再按一下大写锁定键关掉。这跟这个问题很相似:http://www.bigresource.com/Tracker/Track-vb-RvVMlrAbZn/
你有什么建议吗?
提前谢谢你!
3 个回答
-1
你可以试试这个叫做 pywin32
的工具包,不过要注意,它比较旧而且没有人维护了。
这里有一个来自 StackOverflow 的例子。
-1
虽然我找不到让win32api和shift一起工作的办法,但我现在正在使用来自http://code.google.com/p/sendkeys-ctypes/的SendKeys,它似乎在2.7版本中可以正常工作。
-1
Windows的API中的SendInput功能可能会很有用。最近Raymond Chen的博客提到,你甚至可以用它来控制屏幕保护程序的开始和停止。