1

我的任务是将用于 IBM Personal Communications 的较慢的 Macro Express Pro 编码转换为 VBScript/VBA 版本。Macro Express Pro 编码从特定位置打开预定配置文件。

在此处输入图像描述

此过程最多可能需要 30 秒。对于默认配置文件 (TN3270.WS),VBScript 在大约三分之一的时间内完成此操作。但是,当我们尝试打开 UNET.txt 文件中突出显示的特定链接时,我们会收到以下错误:

运行时错误“440”:自动化错误

这是我们尝试使用的 VBScript 代码:

Sub Main()
    Dim EName
    Dim autECLConnList, objConnMgr

    Set objConnMgr = CreateObject("Pcomm.autECLConnMgr")
    objConnMgr.autECLConnList.Refresh
    objConnMgr.StartConnection ("profile='C:\ProgramData\IBM\Personal Communications\UNET REWORK.ws' connname=a")
    Application.Wait (Now + TimeValue("00:00:12"))
    objConnMgr.autECLConnList.Refresh
    EName = objConnMgr.autECLConnList(1).Name
End Sub

错误发生objConnMgr.StartConnection ("profile='C:\ProgramData\IBM\Personal Communications\UNET REWORK.ws' connname=a")在线路上。我们知道我们有正确的配置文件路径,因为我们找到了它的位置:

在此处输入图像描述

IBM 表示,如果配置文件名称包含空格,则“必须用单引号括起来”:

在此处输入图像描述

任何人都可以就我们做错了什么或我们缺少什么提供一些建议吗?

谢谢。

4

1 回答 1

1

我找到了一种方法来做我需要做的事情。我在启动 PCOMM 会话时过于具体,我什至没有想到只是运行.exe文件并发送参数。我是这样做的:

Sub Main()
    Dim WShell

    Set WShell = CreateObject("WSCript.shell")

    WShell.Run """C:\Program Files (x86)\IBM\Personal Communications\pcsws.exe"" ""C:\ProgramData\IBM\Personal Communications\UNET REWORK.WS"""
End Sub

我敢肯定,这是对另一个问题的重复答案,但大多数答案都已有数年之久且已过时。该解决方案是最新的并且最近经过测试,因此它是更可靠的来源。

于 2018-02-08T18:23:53.683 回答