【问题标题】:Getting edge url from vbsscript从 vbscript 获取边缘 url
【发布时间】:2021-10-19 03:26:07
【问题描述】:

我想验证边缘是否打开,如果是,我想检索每个打开选项卡的 url。 目前我有这个,但我在vbs方面没有太多经验。我想用 vbs 实现什么?

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
   sQuery = "SELECT * FROM Win32_Process"
   Set objItems = objWMIService.ExecQuery(sQuery)
   For Each objItem In objItems
       if(objItem.Name = "msedge.exe") then
            WScript.Echo "Process [Name:" & objItem.Name & "]"
            
            
        Exit For
       end if
   Next

提前致谢,

【问题讨论】:

  • 使用 PowerShell 并使用 Windows UI 自动化 API 可能会更好。预先警告,这并不容易掌握,但它会完成工作,如果你用谷歌搜索正确的术语,有几个现成的例子。
  • @leeharvey1 感谢您的回复。不幸的是,我真的必须使用 vbs。旧程序与 ie 一起工作,现在它只是希望我们通过边缘更改 ie。并且 vbs 文件被另一个程序调用,如果我换成另一个东西,它会更加困难。
  • @FCoelho 如果没有一些专有的 COM DLL 来完成繁重的工作,您将无法使用 VBScript 来完成。 Lee 关于使用 PowerShell 的建议可能值得诚实地追求。如果你真的必须使用 VBScript,你可以在 PowerShell 中执行它并通过 VBScript 进行管道传输,但重点在哪里。
  • 我同意 user692942 的评论。我认为你不能用 VBScript 做到这一点。我之前遇到过a similar thread,但它使用的是C#。使用 C#,您可以使用 AutomationElement Class 轻松获取 Edge url。
  • @user692942 你说我可以使用 powershell 并用这个 powershell 代码“连接”vbs 文件?

标签: vbscript microsoft-edge


【解决方案1】:

参考这个access the title of a window using vbscript

我只是对你做了一点修改

Dim Tasks
Tasks = Split(WScript.CreateObject("WScript.Shell").Exec("cmd /c tasklist /v /fo csv | findstr /I ""msedge""").StdOut.ReadAll(),vbCrLf)
Dim task
For Each task In Tasks
    task = Split(Trim(task),",")
    If Ubound(task) >= 8 And task(8) <> """N/A""" Then
        WScript.Echo "Process " + task(0) + "ID: " + task(1) + " Title: " + task(8)
    Exit For
    End If
Next 

【讨论】:

  • 这无济于事,因为浏览器不会在窗口标题中显示 URL,而是从正在显示的 HTML 页面中显示文档标题。 OP 要求提供 URL。引用 - “我想检索每个打开的选项卡的 url”。使用原生 VBScript 是不可能的。
  • @user692942 没错。我想检索 url,以便稍后处理。上面的脚本只给了我标题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
相关资源
最近更新 更多