首页 > 解决方案 > 如何使用 VB.Net 自动化 Microfocus Rumba

问题描述

我正在尝试通过 VB.Net 自动化 Microfocus Rumba 应用程序。由于某些限制,我无法使用 Rumba 中内置的任何宏/脚本功能。

我知道 ehlapi32.dll 可用于自动化 Rumba,但我无法添加 ehlapi32.dll 或 WHLLAPI.dll 作为对 .Net 解决方案的引用。

由于错误“无法创建 Activex 组件”,我无法创建“Microfocus.Rumba”/“Rumba.System”/“Rumba.Application”的对象。我试图通过使用 RegAsm.exe 注册 dll 来解决它。但它说 Dll 不是有效的 .net 程序集。

我附上了错误快照。

在 .Net 解决方案的参考部分添加 dll 时出错

无法创建 ActiveX 组件错误

不是有效的 .Net 程序集错误

注意:我使用的是 MicroFocus Rumba Desktop 9.4.1

任何指导都深表感谢。

谢谢。

标签: vb.netautomationmainframemicrofocus

解决方案


WHLLAPI.DLL 和 EHLAPI32.dll 不是 ActiveX com 组件(因此您不能使用 regsvr32 注册它,也不能通过 regasm 注册它来创建它的 com 互操作),它不是一个 .net 程序集(因此你可以' t 只需添加对它的引用)。它只是一个“老式”的调用库。你需要声明它,然后你可以调用它(通过 P/Invoke,技术性的)。

像(最简单的版本):

Declare Sub hllapi Lib "EHLAPI32.dll" (lpwFunction As Int32, ByVal lpbyString As String, lpwLength As Int32, lpwReturnCode As Int32)

然后调用它

Dim status as Int32
Call hllapi(1, "A", 1, status)    ' Connect to Presentation Space A

您需要参考 HLLAPI 文档,该文档的多个版本/实例可在线获得,并附有示例(并且它主要是跨供应商的标准)。一个是https://docs.attachmate.com/extra/x-treme/apis/ehllapi.pdf


推荐阅读