我正尝试在windows机器上通过python2.7发送键盘命令。我知道SendKeys模块不能在2.7中工作。因此,我改用win32应用编程接口中的keybd_event。
我想发送的键是shift+left来选择一个单词。代码如下:
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键的唯一方法是物理地按capslock,然后按shift +a键,然后是capslock off。它与这个问题非常相似:http://www.bigresource.com/Tracker/Track-vb-RvVMlrAbZn/
你知道该怎么做吗?
提前感谢!
发布于 2011-07-28 17:39:46
虽然我找不到一种方法让win32api与shift一起工作,但我现在正在使用http://code.google.com/p/sendkeys-ctypes/的SendKeys,它似乎可以与2.7一起工作。
发布于 2011-07-29 07:23:41
来自windows API的SendInput可能会有所帮助。最近Raymond Chen的博客文章建议你甚至可以用它来控制屏幕保护程序的启动/停止。
发布于 2016-08-07 06:16:38
您可以尝试pywin32
包,请注意它是旧的且未维护。
https://stackoverflow.com/questions/6843764
复制相似问题