Python 如何用pywin32模拟按住

Python 如何用pywin32模拟按住,python,key,send,pywin32,win32com,Python,Key,Send,Pywin32,Win32com,我正在尝试编写一个python脚本来发送按住键信号。现在我所能做的就是: import win32com.client shell = win32com.client.Dispatch("Wscript.Shell") shell.SendKeys("z") 但是,这仅发送瞬时按键事件。我想做的是向下键和向上键,大致如下: shell.SendKeys("z{down}") time.sleep(.25) shell.SendKeys("z{up}") 但我找不到任何有记录的方法来实现这一

我正在尝试编写一个python脚本来发送按住键信号。现在我所能做的就是:

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/keydup实际上没有做任何事情

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

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

我想这可能就是您想要的。谢谢!这真的很有效我想这可能就是你想要的。谢谢!这很有效,你能举个例子吗?文件对我来说真的很难筛选。请参见编辑。您能提供一个示例吗?文件对我来说真的很难筛选。请参见编辑。