VBScript新手,GetObject 424 Object连接到应用程序时需要

时间:2018-04-19 15:40:36

标签: vbscript

我正在尝试连接到打开的应用程序并将命令发送到其中一个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")

2 个答案:

答案 0 :(得分:0)

建议:评论此行并再次运行程序。

On Error Resume Next

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

答案 1 :(得分:-2)

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

您需要做的第一件事是尽可能避免使用On Error Resume Next,因为这会掩盖错误的真正原因。您报告的错误Object Required是因为由于上述行的错误而未设置oOL。如果我采用你的例子并允许错误,我们会发现它抱怨因调用GetObject而产生的语法错误。我相信您打算使用CreateObject

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

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