vbs仅将SendKeys发送到特定窗口

时间:2017-08-26 02:52:09

标签: vbscript

我有这个VBScript

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "KEYS TO SEND"

此代码会将Keys Strokes发送到Ative Top窗口

如何仅将键击发送到特定窗口?

1 个答案:

答案 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接口调用前者。