我正在尝试编写一个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/KEYUP 并没有真正执行任何操作。
最佳答案
您可以使用win32api.PostMessage
发送WM_KEYDOWN
和WM_KEYUP
消息。有关参数的文档,请参阅 MSDN。这些常量在 win32con
模块中定义。
关于python - 如何使用 pywin32 模拟按住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9271761/