我已经使用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 IBM,StartMacro(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"
答案 0 :(得分:0)
研究的第一个链接指出,如果(宏文件)具有扩展名,则需要删除该扩展名以便调用可以找到宏文件,或者将扩展名添加到调用语句文件名中。您提到这两个都是.mac
文件,因此可以尝试一下:
autECLSession.autECLPS.StartMacro "Credentials.mac"