如何使用Window Script Host查找活动(前景)窗口的标题窗口

Ind*_*hra 5 vbscript wsh

我想使用Window Script Host(WSH)查找当前处于活动状态(具有焦点)的窗口的标题,因为我希望我的WSH脚本仅用于Sendkeys如果所需窗口处于活动状态.

注意*我没有条件使用替代方法,即在调用sendkeys之前激活所需的窗口.

任何帮助表示赞赏.

Hel*_*len 6

简答:你做不到.至少没有为相关的Windows API调用编写COM包装器.

你不能只使用AppActivate并检查结果吗?

Set oShell = CreateObject("WScript.Shell")
If oShell.AppActivate "Untitled - Notepad" Then
  oShell.SendKeys "Hello, world!"
End If
Run Code Online (Sandbox Code Playgroud)


答案很长:要获取活动窗口标题,您需要调用Windows API GetWindowText函数并传递GetForegroundWindow()句柄.VBScript和Windows脚本宿主不支持Windows API调用,因此您需要围绕这些函数编写COM包装器,然后可以在脚本中使用它们.以下示例:

在C中获取当前活动的窗口标题

如何使用c#获取当前活动窗口的标题?