Что нового

Автоматизация входа на защищенный сервер в IE9

Михаил

Новичок
Сообщения
20
Репутация
0
Версия AutoIt: 3.3.6.1
Здравствуйте, при входе на защищенный локальный сервер через IE9 всплывает окно ввода имени пользователя и пароля. Автоматически в WINXP проблему входа на IE8 я решал очень просто :

Код:
[b]WinWaitActive("Подключение к mfd88.svrw.oao.ru", "", $wintime1) then
ControlSend("Подключение к mfd88.svrw.oao.ru", "", "Edit2", "{BACKSPACE 15}")
ControlSend("Подключение к mfd88.svrw.oao.ru", "", "Edit2", $Data[3])
ControlSend("Подключение к mfd88.svrw.oao.ru", "", "Edit3", "{BACKSPACE 15}")
ControlSend("Подключение к mfd88.svrw.oao.ru", "", "Edit3", $Data[4])
ControlClick("Подключение к mfd88.svrw.oao.ru", "", "Button2", "left")[/b]

$Data[3] - логин
$Data[4] - пароль

В WIN 7 на IE9 такой фокус не проходит. Там все также Button2, вместо edit2 - edit1, а edit3 - edit2, только
пароль вместе логином вводится в одно поле edit1 , либо все проходит успешно, но авторизация не проходит. А вот если вводить тоже самое в ручную то все впорядке. Видимо в IE9 чтото изменилось...


Код:
[B]$var1 = "\Internet Explorer\iexplore.exe http://mfd88.svrw.oao.ru/aocarm/"
Run(@ProgramFilesDir & $var1) 

$var = ControlGetText("Безопасность Windows", "", "Edit2")
msgbox(0,0,$var)
ControlSend("Безопасность Windows","","Edit1","pms")
sleep(1000)
ControlSend("Безопасность Windows","","Edit2","pkms0812")
sleep(1000)
ControlClick("Подключение к mfd88.svrw.oao.ru", "", "Button2", "left")[/b]


Подскажите пожалуйста как решить данную проблему.Очень не хочется вводить логин пароль в ручную. Может быть возможно воспользоваться альтернативным браузером ???
Примечания:
 
Автор
М

Михаил

Новичок
Сообщения
20
Репутация
0
Очень жду вашего ответа , проблема все еще актуальна, очень интересно как можно автоматически входить используя скрипт autoit в win 7 ie9.
 
Автор
М

Михаил

Новичок
Сообщения
20
Репутация
0
А может быть можно эту страничку вызвать через GUI ? При использовании данного скрипта страница не открывается, так идет запрос на ввод имени пользователя и пароля, который не может выполниться , возможно ли средствами автоит вызвать это окно?
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 633, 454, 192, 114)
$Obj1 = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($Obj1, 0, 0, 633, 454)
GUISetState(@SW_SHOW)
$Obj1.Navigate("http://111")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Присоединяюсь к вопросу.
Нашёл авторизацию через Microsoft.XMLHTTP. Может кому-то пригодится.
Код:
$oHTTP = ObjCreate("Microsoft.XMLHTTP")


$oHTTP.Open("GET", $url, 0,$login,$pass)


Вот ещё способ:
Код:
$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.SetProxy(1) ; 0-настройки из IE, 1-прямой доступ, 2-через прокси
$oHTTP.Open("GET", $url)
$oHTTP.SetCredentials($login,$pass,0) ; 0-NTLM аутентификация, 1-прокси аутентификация
$oHTTP.Send("")
 
Автор
М

Михаил

Новичок
Сообщения
20
Репутация
0
Здравствуйте, проблема все еще актуальна ! Я так понимаю что тут IE не причем(тестил в 8 и 9), просто в WINDOWS 7 поменялся алгоритм работы с окнами windows security и теперь стандартными средствами Autoit, войти на сайт не представляется возможным. Пароль вводится, только бывает что вместо EDIT2 , на который я ссылаюсь, он вводит его вместе с логином в EDIT1. А также после ввода при нажатии ОК, ничего не происходит - как будето операции копи\пэйст блокируются. Такого рода окна используются для входа например на домашний роутер. Я всеже думаю что есть какая-нибудь возможно автоматизировать вход . Подскажите пожалуйста
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Я у себя решил такую проблему просто.
1. Поставил галочку на "Запомнить пароль"
2. В скрипте поставил
Код:
ControlSend("Подключение к ...", "", "[CLASS:Edit; INSTANCE:3]", "{ENTER}")
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Михаил [?]
В WIN 7 на IE9 такой фокус не проходит.
А если так?
Код:
$wnd = WinActivate("Безопасность Windows")
WinWaitActive($wnd)
ControlSetText($wnd, "", "Edit1", "User")
ControlSetText($wnd, "", "Edit2", "Password")
ControlClick($wnd, "", "Button2")
 
Автор
М

Михаил

Новичок
Сообщения
20
Репутация
0
Спасибо большое , вариант с Controlsettext сработал, завтра буду доделывать скрипт до конца !.
 

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Ещё решение для NTLM авторизации

Код:
#include <IE.au3>
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE","iexplore.exe","REG_DWORD",0)
$oIE = _IECreate("http://domain%5Cuser:[email protected]/link/",0,1)
 
Верх