IBM PCOMM-无法从另一个vbs宏中调用vbs宏

时间:2019-08-13 14:21:45

标签: vbscript mainframe ibm-pcomm

我已经使用IBM Personal Communications 12.0.3.0的宏记录器创建了凭证输入宏。只需在输入时输入我的用户名和密码即可。

sub Credentials()

   Dim username
   Dim password

   username = "myUser"
   password = "myPass"


   autECLSession.autECLOIA.WaitForAppAvailable
   autECLSession.autECLOIA.WaitForInputReady

   autECLSession.autECLPS.SendKeys username
   autECLSession.autECLPS.SendKeys "[enter]"

   autECLSession.autECLOIA.WaitForAppAvailable
   autECLSession.autECLOIA.WaitForInputReady

   autECLSession.autECLPS.SendKeys password
   autECLSession.autECLPS.SendKeys "[enter]"

end sub

在其他工作流程中,我经常必须多次输入用户名/密码才能在窗口之间进行切换,因此我认为,这些较新的宏在出现此类提示时仅调用Credentials()会更简单。我也必须经常更改大型机密码,因此只需要在Credentials()宏中一次替换密码文本即可。

以下是我想使用存储的Credentials()过程的示例:

sub Login()

   autECLSession.autECLOIA.WaitForAppAvailable
   autECLSession.autECLOIA.WaitForInputReady

   autECLSession.autECLPS.SendKeys "server name"
   autECLSession.autECLPS.SendKeys "[enter]"

   autECLSession.autECLOIA.WaitForAppAvailable

   autECLSession.autECLPS.StartMacro "Credentials"

end sub

我的问题在autECLSession.autECLPS.StartMacro "Credentials"行中。在其他尝试使用更经典的vbscript命令运行宏的尝试中,我会遇到执行错误,但是在... .StartMacro "Creds"行中-什么也没有发生


基于this documentation by IBMStartMacro(String MacroName)方法应运行由MacroName参数指示的PCOMM用户类应用程序数据目录中的宏文件。我将两个宏分别存储为用户指定的here under 'typical installation'的用户类应用程序数据目录(.mac)中的单独的"C:\Users\%USERNAME%\AppData\Roaming\IBM\PersonalCommunications"文件。

这就是典型的vb尝试调用另一个宏(代替StartMacro())的意思:

'doesn't work
Shell "C:\Users\marcucciboy2\AppData\Roaming\IBM\Personal Communications\Credentials.mac" 

'neither works
dim ObjShell
Set objShell = CreateObject("WScript.Shell")
ObjShell.Run "cscript C:\Users\marcucciboy2\AppData\Roaming\IBM\Personal Communications\Credentials.mac"
'ObjShell.Run "cscript \\C:\Users\marcucciboy2\AppData\Roaming\IBM\Personal Communications\Credentials.mac"

这是我在研究onetwo中发现的两个相关问题,但不幸的是,它们都没有有效的答案。
任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

研究的第一个链接指出,如果(宏文件)具有扩展名,则需要删除该扩展名以便调用可以找到宏文件,或者将扩展名添加到调用语句文件名中。您提到这两个都是.mac文件,因此可以尝试一下:

autECLSession.autECLPS.StartMacro "Credentials.mac"