2012-02-14 99 views
1

我想写一个python脚本发送按住键信号。现在,所有我设法做的是以下几点:如何模仿按住pywin32

import win32com.client 
shell = win32com.client.Dispatch("Wscript.Shell") 
shell.SendKeys("z") 

然而,这仅发送按下事件瞬时密钥。我想这样做是一个关键下来,关键了,东西线沿线的:

shell.SendKeys("z{down}") 
time.sleep(.25) 
shell.SendKeys("z{up}") 

但我无法找到任何记录的方式来实现这一目标。

编辑:我也试着沿着这个线的东西:

import time 
import win32com.client 
import win32api 
import win32gui 
import win32con 

time.sleep(2) 
shell = win32com.client.Dispatch("Wscript.Shell") 
win32api.SendMessage(win32con.HWND_TOP, win32con.WM_CHAR, 90, 0) 
win32api.SendMessage(win32con.HWND_BROADCAST, win32con.WM_KEYDOWN, 90, 1) 
time.sleep(.25) 
win32api.SendMessage(win32con.HWND_BROADCAST, win32con.WM_KEYUP, 90, 1) 

整个HWND事情真的是一个谜,我 - 从文档我想不出到底如何抓住正确的窗口。此外,WM_CHAR似乎工作,但WM_KEYDOWN/KEYUP并没有真正做任何事情。

+2

我认为这[后](http://stackoverflow.com/a/2004267/673590)可能是你以后。 – tharen 2012-02-14 08:02:50

+0

谢谢!这真的很好 – dave 2012-02-14 17:49:01

回答

1

您可以使用win32api.PostMessage发送WM_KEYDOWNWM_KEYUP消息。有关参数的文档,请参阅MSDN。常量在win32con模块中定义。

+1

你能提供一个例子吗?该文档对我来说很难筛选。请参阅编辑。 – dave 2012-02-14 16:22:47