我有这个VBScript
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "KEYS TO SEND"
此代码会将Keys Strokes发送到Ative Top窗口
如何仅将键击发送到特定窗口?
答案 0 :(得分:2)
WSH中的预期方式是首先使用WshShell.AppActivate
激活窗口,如其他人所述。
根据WinAPI中的How do I send key strokes to a window without having to activate it using Windows API?,,除了活动窗口外,您无法可靠地发送击键。
如果您打算尝试(如果出现问题时不要抱怨),根据链接的问题,您需要使用{{{}向窗口发送一系列消息1}}。
在WSH中没有内置的方式来调用WinAPI。因此,要么使用另一种语言,其标准库提供对WinAPI的访问和/或对它们的包装,要么使用第三方COM对象,如DynamicWrapperX。
作为旁注,您可能希望考虑使用专用的UI自动化语言,如AutoIt或Autohotkey。如果由于某种原因仍然需要使用WSH,可以通过COM接口调用前者。