Vagac
16-03-2010, 13:01
Подскажите пожалуйста мне необходимо чтобы мой скрипт выполнялся только после того как винда полностью загрузится и инициализируется сеть не знаю с чем это связано но некоторые команды из скрипта не отрабатывают хотя запускаются от имени Админа и с паролем админа опытным старт скрипта прописан в HLM run вот сам скрипт
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <Process.au3>
#include <File.au3>
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=1.ico
#AutoIt3Wrapper_outfile=cmpstr.exe ;Название ехе файла после компиляции
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Release
#AutoIt3Wrapper_Res_Description=0
#AutoIt3Wrapper_Res_Fileversion=6.00.2900.5512
#AutoIt3Wrapper_Res_LegalCopyright=0
#AutoIt3Wrapper_Res_Language=1033
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Sleep(100)
ProcessWait ("explorer.exe")
BlockInput(1)
Sleep(5000)
$Start1="C:\WINDOWS\cmps.exe"
$Start2="C:\WINDOWS\cmp.exe"
$connect = _GetNetworkConnect()
If $connect Then
Else
RunAs("admin", "", "********",1,$Start1)
;Сеть Отсутствует
Exit
EndIf
$varPing = Ping("192.168.0.8",400)
If @error > 0 Then
;Пинг Отсутствует
RunAs("admin", "", "********",1,$Start1)
Exit
Else
;Пинг
$rc = _RunDos('NET TIME \\192.168.0.1 /SET /Y')
Sleep(1000)
RunAs("admin", "", "********",1,$Start2)
EndIf
Func _GetNetworkConnect()
Local Const $NETWORK_ALIVE_LAN = 0x1 ;net card connection
Local $aRet, $iResult
$aRet = DllCall("sensapi.dll", "int", "IsNetworkAlive", "int*", 0)
If BitAND($aRet[1], $NETWORK_ALIVE_LAN) Then $iResult &= "" & @LF
Return $iResult
EndFunc
------------------------------------------------------------------------------------------------------------------------------------------------
Вобщем задача такая : Скрипт проверяет сначала наличие LAN если LAN есть тогда проверяет доступин ли сервер по адресу 192.168.0.1
Если LAN не доступен тогда запескает скрипт"cmps.exe" если сервер не доступен запескает скрипт"cmps.exe"
Если LAN доступен и сервер доступен тогда синхронизирует время с сервером и запускает скрипт "cmp.exe"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <Process.au3>
#include <File.au3>
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=1.ico
#AutoIt3Wrapper_outfile=cmpstr.exe ;Название ехе файла после компиляции
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Release
#AutoIt3Wrapper_Res_Description=0
#AutoIt3Wrapper_Res_Fileversion=6.00.2900.5512
#AutoIt3Wrapper_Res_LegalCopyright=0
#AutoIt3Wrapper_Res_Language=1033
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Sleep(100)
ProcessWait ("explorer.exe")
BlockInput(1)
Sleep(5000)
$Start1="C:\WINDOWS\cmps.exe"
$Start2="C:\WINDOWS\cmp.exe"
$connect = _GetNetworkConnect()
If $connect Then
Else
RunAs("admin", "", "********",1,$Start1)
;Сеть Отсутствует
Exit
EndIf
$varPing = Ping("192.168.0.8",400)
If @error > 0 Then
;Пинг Отсутствует
RunAs("admin", "", "********",1,$Start1)
Exit
Else
;Пинг
$rc = _RunDos('NET TIME \\192.168.0.1 /SET /Y')
Sleep(1000)
RunAs("admin", "", "********",1,$Start2)
EndIf
Func _GetNetworkConnect()
Local Const $NETWORK_ALIVE_LAN = 0x1 ;net card connection
Local $aRet, $iResult
$aRet = DllCall("sensapi.dll", "int", "IsNetworkAlive", "int*", 0)
If BitAND($aRet[1], $NETWORK_ALIVE_LAN) Then $iResult &= "" & @LF
Return $iResult
EndFunc
------------------------------------------------------------------------------------------------------------------------------------------------
Вобщем задача такая : Скрипт проверяет сначала наличие LAN если LAN есть тогда проверяет доступин ли сервер по адресу 192.168.0.1
Если LAN не доступен тогда запескает скрипт"cmps.exe" если сервер не доступен запескает скрипт"cmps.exe"
Если LAN доступен и сервер доступен тогда синхронизирует время с сервером и запускает скрипт "cmp.exe"