Что нового

Автоматический вход в домен и клик в 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
Репутация
78
ShurShik [?]
"нажмите ctrl-alt-del, введите имя пользователя, домен, пароль" В этот момент необходимо, чтобы открылась страничка в IE7
От чьего имяни запускается программа?
Если от системы то в ней нет окон, и поэтому этот скрипт так не сработает.
 

kaster

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

winstan

Эксплотатор)
Сообщения
406
Репутация
78
Код:
$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 319
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
Репутация
78
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 добрались

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