Python 和 SendKeys
import SendKeys, threading, pyHook, pythoncom
class Auto(threading.Thread):
def run(self):
SendKeys.SendKeys("{ENTER}",pause=0.1);
print('Sent');
exit();
def OnKeyboardEvent(event):
if event.Ascii == 22:
Auto().start();
return True
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
由于某种原因,该程序在运行两次后失败,我不知道这是什么原因。当您注释掉 SendKeys 部分时,程序运行良好,因此发送键一定有问题。
[编辑] 另外,为了澄清,在 for i in range(0,100) 中运行 SendKeys.SendKeys(...) 有效,所以我认为这与线程有关。我以前从未编写过线程。这也只是一个复制问题的模型示例。
我在 Windows 7 上运行,python2.6
[编辑]此外,程序不会“失败”它只是冻结(该函数根本没有运行,它只是坐在那里)