【问题标题】:IBM PCOMM - Unable to call a vbs macro from within another vbs macroIBM PCOMM - 无法从另一个 vbs 宏中调用 vbs 宏
【发布时间】:2019-08-13 14:21:45
【问题描述】:

我使用 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 用户类应用程序数据目录中的宏文件。我将这两个宏作为单独的 .mac 文件存储在用户类应用程序数据目录 ("C:\Users\%USERNAME%\AppData\Roaming\IBM\PersonalCommunications") 中,指定为 here under 'typical installation'

这就是我所说的典型的 vbs 尝试调用另一个宏(代替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 中发现的两个相关问题,但不幸的是,它们都没有有效的答案。
任何建议将不胜感激!

【问题讨论】:

  • 是否可以选择使用 PowerShell?
  • 明确地说,我对任何事情都持开放态度:)
  • 请注意,这两个子例程存在于不同的文件中。我敢打赌,将它们放在一个文件中将允许一个调用另一个,但是,我不知道在这种情况下如何分别调用每个文件。

标签: vbscript mainframe ibm-pcomm


【解决方案1】:

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

autECLSession.autECLPS.StartMacro "Credentials.mac" 

【讨论】:

  • 我非常感谢您尝试解决这个问题,但这个答案没有运气。我收到错误Error in the script on line 21. ECL37100: Emulator interface (EHLLAPI) error. Reason code 9. Would you like to edit the script?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多