Python在Windows上发送密钥

时间:2011-07-27 11:45:54

标签: python winapi sendkeys

我正在尝试通过Windows机器上的python 2.7发送键盘命令。据我所知,SendKeys模块不适用于2.7。所以我使用win32 api中的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)

这一切都有效。但是,换档键保持低位!即使我杀了这个过程。释放移位键的唯一方法是物理按下大写锁定,然后移动+一个键,然后关闭大写。它与此问题非常相似:http://www.bigresource.com/Tracker/Track-vb-RvVMlrAbZn/

你知道该怎么做吗?

提前致谢!

3 个答案:

答案 0 :(得分:0)

虽然我无法找到让win32api与shift一起工作的方法,但我现在正在使用来自http://code.google.com/p/sendkeys-ctypes/的SendKeys,这似乎适用于2.7。

答案 1 :(得分:0)

Windows API中的SendInput可能会有所帮助。最近的Raymond Chen博客文章建议您甚至可以使用它来控制屏幕保护程序启动/停止。

答案 2 :(得分:0)

您可以尝试使用pywin32软件包,请注意它已经过时且没有维护。

这是an example from StackOverflow