我使用 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"
行 -没有任何反应。
根据IBM 的此文档,该StartMacro(String MacroName)
方法应运行位于MacroName
参数指示的 PCOMM 用户类应用程序数据目录中的宏文件。我将这两个宏作为单独.mac
的文件存储在用户类应用程序数据目录 ( "C:\Users\%USERNAME%\AppData\Roaming\IBM\PersonalCommunications"
) 中,如此处在 '典型安装' 下指定的那样。
这就是我所说的典型 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"