我正在尝试连接到打开的应用程序并将命令发送到其中一个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")
答案 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是一种可怕的语言。