我有这个VBScript
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "KEYS TO SEND"
Run Code Online (Sandbox Code Playgroud)
此代码会将按键笔划发送到 Active Top 窗口
如何将击键仅发送到特定窗口?
WSH 中的预期方法是首先激活窗口,WshShell.AppActivate如其他人所述。
根据如何将击键发送到窗口而无需使用 Windows API 激活它?,在 WinAPI 中,您无法可靠地将击键发送到除活动窗口之外的任何内容。
如果您打算无论如何尝试(如果出现问题,请不要抱怨),根据链接的问题,您需要使用 向窗口发送一系列消息SendMessage。
WSH 中没有调用 WinAPI 的内置方法。因此,要么使用其标准库提供对 WinAPI 和/或它们的包装器的访问的另一种语言,要么使用像DynamicWrapperX这样的第 3 方 COM 对象。
顺便说一句,您可能希望考虑使用专用的 UI 自动化语言,例如 AutoIt 或 Autohotkey。如果由于某种原因您仍然需要使用 WSH,则可以通过 COM 接口调用前者。