Вот мои наработки на тему ввода имени пользователя для AutoHotkey. Но хочу сразу предупредить, что скрипт очень сырой, по-хорошему его надо доработать. Направления для доработки приведены в коде в виде комментариев:
Код:
;Запрещаем две одовременно работающие копии скрипта
#SingleInstance ignore
;Включаем поиск по частичным совпадениям
SetTitleMatchMode 2
;Запускаем навик
Run, C:\Program Files\Microsoft Navision 4\Client\fin.exe "database=c:\temp\newstore.fdb"`,"company=CRONUS"`,"ntauthentication=0"`,"NetType=tcp", C:\Program Files\Microsoft Navision 4\Client\, , AppPID
;Ждем появления его окна
;Название и класс окна приведены для русской 4-ки, у других версий они могут отличаться
WinWait, Microsoft Business Solutions-Navision ahk_class C/SIDE Application ahk_pid %AppPID%
;Здесь может появиться:
;1 - окно логина
;2 - окно лицензии
;3 - ничего
;4 - окно выбора базы (хотя оно вроде само по себе не появляется)
;Какое-нить предупреждение, например что сервер не найден
;И эту ситуацию нужно как-то обработать
;Ждем появления окна логина
;Название и класс окна приведены для русской 4-ки, у других версий они могут отличаться
WinWait, Логин ahk_class C/SIDE Glued
;Активизируем его
IfWinNotActive
{
WinActivate
WinWaitActive
}
;GUI Navision сделаны по какой-то хитрой (возможно старой) технологии и получить хендл отдельного элемента
;управления нельзя, чтобы применить к нему SeText, поэтому будем использовать Send
Send, Username{ENTER}
;Имя пользователя желательно читать из какого-нибудь файла
Оба указанных интерпретатора позволяют компилировать скрипт в exe файл, поэтому решение вполне удобное - не надо ставить интерпретатор на клиентские машины.