0

我想在 vbscript 中使用 xshell 库,但是当我使用 createObject() 创建对象失败时,如何从 Xshell 应用程序提供的类型库创建对象?

我猜xshell可以很好地注册到系统,因为我可以通过'tools->reference->“Xshell 1.0 Type Library”在excel vba项目中添加一个引用,然后我可以使用dim xshell作为xshell.ScriptHost和我可以从对象浏览器中找到 Xshell 信息。

在此处输入图像描述

我曾尝试 oleviwer 查找有关 Xshell 1.0 类型库的一些信息,但实际上我找不到 xshell 的 ProgID。

在此处输入图像描述 在此处输入图像描述

我转向 exeScope,我是否发现了一些有趣的东西 在此处输入图像描述

在右侧窗口中我们可以看到“ForceRemove {xxxx-xxxxxxxx-xxxx} = s'ScriptHost Class ....{ProgID=s'Xshell.ScriptHost.1'.... ForceRemove 'Programmable' ....}

我怎么能取消强制删除?

dim xshell 
set xshell=CreateObject("C:\Program Files (x86)\Common Files\NetSarang\XshellCore.tlb")
MsgBox "success"

运行错误,错误代码为“800A01AD”

ActiveX 组件无法创建对象

4

1 回答 1

2

您不能从类型库创建 COM 组件实例。类型库是一个定义文件,它描述了 COM 对象库使用IUnknownIDispatch接口支持的对象、属性和方法。

它只是一个定义文件,不包含任何实现。如果您想尝试使用 VBScript 来使用 XShell,您需要找到与应用程序关联的 COM DLL。

如果 XShell 暴露给 COM,它将在 Windows 注册表中注册一个 ProgID。如果您可以使用类似工具在注册表中找到 ProgID,则regedit.exe可以使用以下检查列表来识别与其关联的 DLL,并使用ProgIDwithCreateObject()来实例化 COM 组件的实例。


于 2019-04-15T06:14:49.267 回答