如何用VBScript检测Edge运行状态并获取所有打开标签页的URL
实现方案
该需求完全可以通过VBS实现,不需要额外依赖其他工具,核心原理是通过Shell.Application对象调用Chromium内核Edge暴露的自动化接口获取标签页信息,完整实现代码如下:
Dim objWMIService, colProcesses, objShell, objWindows, objWindow, isEdgeRunning isEdgeRunning = False ' 第一步:检测Edge进程是否运行 Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name='msedge.exe'") If colProcesses.Count > 0 Then isEdgeRunning = True WScript.Echo "检测到Edge浏览器正在运行,当前打开的标签页URL如下:" WScript.Echo "----------------------------------------" Else WScript.Echo "Edge浏览器未启动" WScript.Quit End If ' 第二步:遍历获取所有Edge标签页URL Set objShell = CreateObject("Shell.Application") Set objWindows = objShell.Windows For Each objWindow In objWindows ' 过滤Edge窗口,判断进程名和类名 If InStr(1, objWindow.FullName, "msedge.exe", vbTextCompare) > 0 Then WScript.Echo "标签标题:" & objWindow.LocationName WScript.Echo "标签URL:" & objWindow.LocationURL WScript.Echo "----------------------------------------" End If Next ' 释放对象 Set objWindow = Nothing Set objWindows = Nothing Set objShell = Nothing Set colProcesses = Nothing Set objWMIService = Nothing
注意事项
- 代码默认仅能获取当前登录用户下打开的Edge窗口,其他用户会话启动的Edge进程无法读取标签信息
- 如果Edge开启了「增强安全模式」或者组策略禁用了浏览器自动化接口,可能无法正常读取URL
- 代码会返回所有类型的Edge页面,包括设置页、扩展页、新标签页等,不需要可以自行对
LocationURL加过滤规则 - 运行时如果需要输出到文件,可以通过命令行执行
cscript 脚本文件名.vbs > 输出文件.txt实现
内容的提问来源于stack exchange,提问作者FCoelho
相关产品推荐
相关产品推荐

