vbscript - 如何使用 Window Script Host 查找事件(前台)窗口的窗口标题

标签 vbscript wsh

我想使用 Window Script Host(WSH) 查找当前事件(具有焦点)的窗口的标题,因为我希望我的 WSH 脚本仅在所需窗口处于事件状态时才发送键。

注意*我无法使用替代方案,即在调用 sendkeys 之前激活所需的窗口。

感谢任何帮助。

最佳答案

简短回答:你不能。至少在没有为相关 Windows API 调用编写 COM 包装器的情况下是这样。

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

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


长答案:要获取事件窗口标题,您需要调用 Windows API GetWindowText函数并传递 GetForegroundWindow()处理。 VBScript 和 Windows Script Host 不支持 Windows API 调用,因此您需要围绕这些函数编写一个 COM 包装器,然后可以在脚本中使用它。以下是示例:

Get current active Window title in C

How do I get the title of the current active window using c#?

关于vbscript - 如何使用 Window Script Host 查找事件(前台)窗口的窗口标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341753/

相关文章:

windows - VBscript 在特定时间范围内检查文件是否存在(能够使用通配符)

vba - 验证 csv 文件

Python,使用两个路径和参数创建快捷方式

vbscript - 为什么 WScript.StdOut.Write 方法在 VBS 和 JScript 中的行为不同?

vbscript - vbs 结合常量

excel - 如何在 vba Excel 中自动上传文件 "Choose File To Upload"

asp-classic - 循环遍历表单以获取字段名称和归档值问题(经典 ASP)

git - 在 Windows 中编写 Git 命令脚本

windows - 从 HTA 运行时,bWaitOnReturn 对 mstsc.exe 没有影响

windows - Windows 脚本宿主的 future