Что нового

Автоматический вход в домен и клик в IE7

ShurShik

Новичок
Сообщения
4
Репутация
0
Здравствуйте!
Никак не получается решить одну проблему: Компьютер включается по таймеру в BIOS, загружается до момента "нажмите ctrl-alt-del, введите имя пользователя, домен, пароль" В этот момент необходимо, чтобы открылась страничка в IE7 и нажалась кнопка на этой странице.
В планировщике windows XP задан скрипт, который запускается при включении компьютера:
Код:
#include <IE.au3>

if (@WDAY = 1) or (@WDAY = 7) then
$file = FileOpen("test.txt", 1)
FileWrite($file, "shutdown day =" & @WDAY & "  date =" & @MON & "." & @MDAY & "  time =" & @HOUR & ":" & @MIN & @CRLF)
FileClose($file)
 Sleep(15000)
   Shutdown(1)  ; если день не рабочий, то ничего не жмакаем, выключаемся.
 exit
endif

$oIE = _IECreate ("http://server.com/Events.aspx")
RunAs("UserName", "domain", "password", 1, $oIE, "c:\", @SW_MAXIMIZE)
$file = FileOpen("test.txt", 1)     ;будем писать ошибки
FileWrite($file, "working day =" & @WDAY & "  date =" & @MON & "." & @MDAY & "  time =" & @HOUR & ":" & @MIN & @UserName & @CRLF)
Filewrite($file, @error & @CRLF)    ; есть ошибки?
 Sleep(15000)
_IEImgClick ($oIE, "http://server.com/images/into.png")
Filewrite($file, @error & @CRLF)    ; есть ошибки?
FileClose($file)


Клик не происходит.

В логе видим это:

working day =6 date =11.25 time =08:22UserName
0
3

После того, как я вхожу в систему (нажимаю ctrl-alt-del, ввожу имя пользователя, домен, пароль) и ручками запускаю этот скрипт, все работает нормально. В логе это:
working day =6 date =11.25 time =08:22UserName
0
0

Внимание вопрос: как сделать так, чтобы скрипт отработал без моего участия?
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
ShurShik [?]
"нажмите ctrl-alt-del, введите имя пользователя, домен, пароль" В этот момент необходимо, чтобы открылась страничка в IE7
От чьего имяни запускается программа?
Если от системы то в ней нет окон, и поэтому этот скрипт так не сработает.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
ShurShik
для автоматизации веб есть специальный раздел, в следующий раз старайся создавать подобные темы там
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Код:
$oIE = _IECreate ("http://server.com/Events.aspx")
RunAs("UserName", "domain", "password", 1, $oIE, "c:\", @SW_MAXIMIZE)

и вот эти 2 сторики не ппонятны.. это что тут должно было реализоваться?
 
Автор
S

ShurShik

Новичок
Сообщения
4
Репутация
0
От чьего имяни запускается программа?
От имени UserName (строка в логе working day =6 date =11.25 time =08:22UserName, точнее @UserName, на сколько я понимаю выводит имя текущего пользователя).

и вот эти 2 сторики не ппонятны.. это что тут должно было реализоваться?
Здесь я надеялся запустить IE от имени пользователя UserName, что как мне кажется, удалось..

Есть подозрение, что доменная политика не включает сетевизмы, пока не будет произведен вход в домен. Таким образом, судя по записям в лог мы видим, что IE запускается нормально (ошибка 0), под именем UserName, но страница не загружается и соответственно клик не происходит (ошибка 3).. Как определить, загрузилась ли страничка нормально, без ошибок?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ShurShik,
Не могу проверить, но может быть так?
Код:
#include <IE.au3>
#include <WinAPIEx.au3>

$iPID = RunAs('UserName', 'domain', 'password', 1, _
		'"' & @ProgramFilesDir & '\Internet Explorer\IEXPLORE.EXE" http://server.com/Events.aspx', _
		'', @SW_MAXIMIZE)
If Not $iPID Then
	MsgBox(16, 'Error', 'RunAs')
	Exit
EndIf
Sleep(3000);???
$aWin = _WinAPI_EnumProcessWindows($iPID)
If @error Then
	MsgBox(16, 'Error', '_WinAPI_EnumProcessWindows')
	Exit
EndIf
$oIE = _IEAttach($aWin[1][0], 'HWND')
;и т.д.
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
ShurShik [?]
что IE запускается нормально (ошибка 0)
@error возращает значение от последний выполненой функции
в твоём случаи их 2
Код:
1.$file = FileOpen("test.txt", 1)
2._IEImgClick ($oIE, "http://server.com/images/into.png")


в строках ...
Код:
$oIE = _IECreate ("http://server.com/Events.aspx")
это уже запускает браузер... и в переменной $oIE появляется хендел этого браузера...
 
Автор
S

ShurShik

Новичок
Сообщения
4
Репутация
0
2 madmasles:
Доработал так:
Код:
#include <IE.au3>
#include <WinAPIEx.au3>

$file = FileOpen("test.txt", 1)
$iPID = RunAs('UserName', 'domain', 'password', 1, _
        '"' & @ProgramFilesDir & '\Internet Explorer\IEXPLORE.EXE" http://server.com/Events.aspx', _
        '', @SW_MAXIMIZE)
        Filewrite($file, @error & @CRLF)
If Not $iPID Then
    Filewrite($file, "error runas" & @CRLF)
    Exit
EndIf
Sleep(3000);???
$aWin = _WinAPI_EnumProcessWindows($iPID)
Filewrite($file, @error & @CRLF)
Filewrite($file, "до _IEAttach добрались" & @CRLF)
If @error Then
    Filewrite($file, @error  & "   WinAPI_EnumProcessWindows" & @CRLF)
    Exit
EndIf
$oIE = _IEAttach($aWin[1][0], 'HWND')
Filewrite($file, @error & @CRLF)
Filewrite($file, "до _IEимгклик добрались" & @CRLF)
;и т.д
_IEImgClick ($oIE, "http://bran.creditdnepr.com/cdb/images/into.png")
Filewrite($file, @error & @CRLF)
FileClose($file)

Теперь появилась ошибка "Ошибка инициализации приложения 0хс0000142..."
В логе видим такое:

0
0
до _IEAttach добрались

После входа в систему имеем подвисший скрипт в процессах...
 
Верх