Python在Windows上发送密钥

问题描述 投票:1回答:3

我正在尝试通过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/

你知道该怎么办吗?

提前致谢!

python winapi sendkeys
3个回答
0
投票

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


0
投票

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


0
投票

你可以尝试pywin32包,请注意它是旧的,没有维护。

这是an example from StackOverflow

© www.soinside.com 2019 - 2024. All rights reserved.