【问题标题】:VBScript newbie, GetObject 424 Object Required when connecting to applicationVBScript 新手,GetObject 424 Object 连接到应用程序时需要
【发布时间】:2018-04-19 15:40:35
【问题描述】:

我正在尝试连接到一个打开的应用程序并向其中一个 DLL 函数发送命令。这是代码 - 错误发生在 GetObject 上。我究竟做错了什么?

Dim oOL
Dim lcCmd

lcCmd = "'QQWOMOD.TWOAuto', '100',False"
MsgBox lcCmd
On Error Resume Next

'The Next stmt is commented out, but gives the same error as the one that follows it
'Set oOL = GetObject("C:\Program Files (x86)\Component Control\Quantum Control\Quantum.exe", "Quantum.SysMod")

Set oOL = GetObject("Quantum.SysMod")
If oOL is Nothing Then
    MsgBox "1- " + Err.Description
    MsgBox "1- " + Err.number
End If

MsgBox ("2")
oOL.InspectWO(lcCmd)
MsgBox("3")

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    一个建议:注释这一行并再次运行程序。

    On Error Resume Next
    

    此行不允许您理解错误,因为即使引发错误,程序也会继续运行。

    【讨论】:

      【解决方案2】:

      欢迎来到 Stack Overflow。我仍然对开始使用古老的 VBScript 编程的人数感到惊讶,但让我们看看这一点。 :)

      您需要做的第一件事是尽可能避免使用On Error Resume Next,因为这会掩盖错误的真正原因。您报告的错误 Object Required 是因为上面一行的错误根本没有设置 oOL。如果我以您的示例为例并允许错误,我们会看到它在抱怨由于对GetObject 的调用而导致的语法错误。我相信你的意思是使用CreateObject

      假设是这种情况,您必须再次运行它并查看它是否有效。如果没有,并且您收到“ActiveX 组件无法创建对象”之类的错误,则表示您没有为 Quantum SysMod 安装必要的 DLL。您应该查看该软件的文档以了解如何注册它。也可以参考the regsvr32 page

      同样,如果您有任何其他可用的开发工具可以加载所需的组件,例如 C# 甚至 VB.Net,那么您真的应该尝试使用这些工具。 VBScript 是一种糟糕的语言。

      【讨论】:

      • 感谢您的帮助。在您的建议下,我得以完成这项工作。你们太棒了!
      • @Mile140 很高兴为您提供帮助!如果您想将您的问题标记为已解决,可以使用我的答案旁边的勾号图标将其标记为已接受的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多