Показать сообщение отдельно
Старый 10.04.2009, 10:12   #11  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Вот мои наработки на тему ввода имени пользователя для 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 файл, поэтому решение вполне удобное - не надо ставить интерпретатор на клиентские машины.