【问题标题】:VBscript Object required 800A01A8需要 VBscript 对象 800A01A8
【发布时间】:2014-08-14 06:47:53
【问题描述】:

请帮忙。无法使此代码工作。它需要一个对象。不知道如何解决这个问题。我在我的脚本上没有看到拼写错误。我正在尝试检查我的 PC 中是否有对 https://www.test.com 开放的 Internet Explorer。学校项目急需。提前致谢

Option Explicit
Dim objShell, objShellWindows, i, objIE
Set objShell = CreateObject("Shell.Application")
Set objShellWindows = objShell.Windows

For i = 0 to objShellWindows.Count - 1
    Set objIE = objShellWindows.Item(i)
    strURL = objIE.LocationURL
    If InStr(strURL, "https://www.test.com/")Then
        blnFound = True
    End If
Next

【问题讨论】:

  • 你想做什么?
  • 我想要一个 vbscript 来检查我的 PC 上是否有打开的 Internet Explorer。如果有,那么它将检查该 IE 是否对特定网站开放。
  • 看看这个答案:stackoverflow.com/a/941853/3898606
  • strURL 未定义。由于您有Option Explicit,您需要声明所有变量。也许你只需要Dim strURL
  • 运行上述代码时我得到的唯一错误是Variable is undefined。一旦我定义它,代码似乎在 Window 7 x64 SP1 Professional 上按预期运行。这是你所有的代码吗?你应该得到和我一样的错误。我知道这不是您问题的根本原因,但是我想知道为什么您能够在没有 800A01F4, variable is undefined 的情况下执行该代码

标签: windows vbscript


【解决方案1】:

下面的代码会检查 IE 中加载的所有 URL,
请注意,当sURL.LocationURL 内部时,bFound 为 True,而不是以开头。修改以满足您的需要。

Option Explicit

Const sURL = "https://www.test.com/"
Dim oShell, oWindow, oIE, bFound
Set oShell = CreateObject("Shell.Application")
bFound = False
For Each oWindow In oShell.Windows
    If InStr(1,oWindow.Fullname,"iexplore.exe",vbTextCompare) > 0 Then
        Set oIE = oWindow
        With oIE
            'Wscript.Echo .LocationURL
            bFound = (InStr(1,.LocationURL,sURL,vbTextCompare) > 0)
            If bFound Then Exit For
        End With
        Set oIE = Nothing
    End If
Next
If bFound Then
    Wscript.Echo sURL & " is loaded"
Else
    Wscript.Echo sURL & " is NOT loaded"
End If
Set oShell = Nothing

【讨论】:

  • 不要使用全局On Error Resume Next永远。如果由于某种原因您必须使用OERN,请尽可能本地化,并设置合理的错误处理程序。
  • @AnsgarWiechers 我说过我们应该将OERN 放在全球范围内吗?我假设用户在本地 Sub 中使用它。如果您对此投了反对票,请重新考虑。我现在已经删除了 OERN 作为代码的最开始,我需要它来测试 Object 是 Nothing。我相信 DownVote 是针对与问题无关的答案,而不是编码实践的风格。
  • 在没有适当警告或任何类型的错误处理的情况下将全局 OERN 放入答案中是树立了一个坏榜样。请记住,大多数在这里寻求 VBScript 帮助的人对 VBScript 及其陷阱知之甚少。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多