Зависает скрипт при вводе пароля

Ответить
Аватара пользователя
Rrider

Зависает скрипт при вводе пароля

Сообщение Rrider »

При вводе пароля в окне идентификации пользователя скрипт зависает. Т.е. если пароль состоит из 8 символов, то скрипт может ввести 1,3 или 5 символов и остановиться. В половине случаев ему удается ввести пароль полностью и программа успешно запускается. Обычно это наблюдается при запуске скрипта из Автозагрузки при загрузке Windows. Если скрипт запустить вручную, то программа запускается успешно.

Я так понимаю, что какие-то процессы происходящие в конце загрузки Windows мешают нормальной работе скрипта. Что можно сделать в моем случае? Часть кода (взятый с этого форума), привожу ниже.

Еще обратил внимание, что если в момент ввода пароля курсор мыши принимает вид песочных часов, то скрипт пароль не введет.

===================================

Windows 7 64-бит





Код:

Код: Выделить всё

run ("info.exe")
$sTitle = "Идентификация пользователя"
$hWindow = WinWait($sTitle, '', 60) ;ждем появления окна с заголовком $sTitle и любым текстом 5 секунд
If Not $hWindow Then ;если не дождались окна ($hWindow = 0)
    MsgBox(16, 'Ошибка', 'Нет такого окна')
    Exit ;заканчиваем работу.
EndIf
Sleep(10000)
WinActivate  ($sTitle)
$sLog=RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog","Key1")
$sPass=RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog","Key2")
ControlSetText($sTitle, '', 'Static3', $sLog)
ControlSetText($sTitle, '', 'Static4', $sPass)
ControlClick($sTitle, '', 'Button1')
Аватара пользователя
TERMINAL

Re: Зависает скрипт при вводе пароля

Сообщение TERMINAL »

А если просто попробовать Send ($sPass) ?
Аватара пользователя
TERMINAL

Re: Зависает скрипт при вводе пароля

Сообщение TERMINAL »

Пробовал, то же самое, сейчас на этом методе, кстати, и остановился . Пока решил проблему используя Sleep, те жду когда закончатся процессы связанные с загрузкой Windows. Пока работает стабильно.

Но на самом деле правильным решением была бы проверка - ввелся пароль или нет, если не ввелся повторять ввод до успешного результата. Но как проверить ввелся пароль или нет я пока не нашел...
Ответить

Вернуться в «AutoIt»