如何在 vbscript 中引用类型库(通常使用 xshell 库)

How to reference type library in vbscript (typically with xshell library )

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

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

我尝试在oleviwer上查找Xshell 1.0 Type Library的一些信息,但实际上我找不到xshell的ProgID。

我求助于 exeScope,我有没有发现一些有趣的东西

在右侧window我们可以看到“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"

run error with error code "800A01AD"

ActiveX component could not create object

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

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

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


  • (有关从关联的 ProgID 识别 COM DLL 的信息)