IBM PCOMM - не удается запустить макрос VBS из другого макроса VBS

Я создал макрос для ввода учетных данных с помощью средства записи макросов 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) метод должен запускать файл макроса, расположенный в каталоге данных приложения пользовательского класса PCOMM, указанном MacroName параметр. У меня оба макроса хранятся как отдельные .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"

Вот два связанных вопроса, которые я нашел в своем исследовании один, два, но, к сожалению, ни один из них не имеет рабочего ответа.
Любой совет будет принят во внимание!

2 ответа

Первая ссылка из вашего исследования гласит, что если (файл макроса) имеет расширение, вам необходимо либо удалить расширение, чтобы вызов мог найти файл макроса, либо добавить расширение к имени файла оператора вызова. Вы упомянули, что оба.mac файлы, чтобы вы могли попробовать:

autECLSession.autECLPS.StartMacro "Credentials.mac" 

Там также написано, что длинные имена файлов не поддерживаются. например, более 8 символов. Попробуйте более короткое имя для этого файла макроса.

Параметры:String MacroName Имя файла макроса, расположенного в каталоге данных приложения пользовательского класса PersonalCommunications (указанного при установке), без расширения файла. Этот метод не поддерживает длинные имена файлов.

Замечания по использованию: В качестве имени макроса необходимо использовать короткое имя файла. Этот метод не поддерживает длинные имена файлов.

Другие вопросы по тегам