Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Запуск скрипта после полной загрузки Windows

Ответить
Настройки темы
Запуск скрипта после полной загрузки Windows

Новый участник


Сообщения: 38
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vagac
Дата: 17-03-2010
Подскажите пожалуйста мне необходимо чтобы мой скрипт выполнялся только после того как винда полностью загрузится и инициализируется сеть не знаю с чем это связано но некоторые команды из скрипта не отрабатывают хотя запускаются от имени Админа и с паролем админа опытным старт скрипта прописан в 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"

Отправлено: 13:01, 16-03-2010

 

Аватара для centaurvv

Новый участник


Сообщения: 24
Благодарности: 3

Профиль | Отправить PM | Цитировать


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

PHP код: Выделить весь код

#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()
FileWriteLine('log.log''$connect =' $connect  )
If 
$connect Then
Else
     
RunAs("admin""""********",1,$Start1)
     ;
Сеть Отсутствует
     FileWriteLine
('log.log''Сеть Отсутствует')
     Exit
EndIf
$varPing Ping("192.168.0.8",400)
If @
error 0 Then 
     
;Пинг Отсутствует
     RunAs
("admin""""********",1,$Start1)
     
FileWriteLine('log.log''Пинг Отсутствует')
     Exit
Else 
     ;
Пинг
     $rc 
_RunDos('NET TIME \\192.168.0.1 /SET /Y')
     
FileWriteLine('log.log''_RunDos прошел')
     
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_LANThen $iResult &= "" & @LF
     
Return $iResult
EndFunc 


Последний раз редактировалось centaurvv, 17-03-2010 в 01:09.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:58, 17-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Vagac,
А если в начале скрипта просто паузу прописать, например, на 1 минуту или на 2 для надежности?

Отправлено: 04:36, 17-03-2010 | #3


Новый участник


Сообщения: 38
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно конечно и в лог но дело в том что на разных компах разное время загрузки системы вот я и думал может как то можно узнать момент полной загрузки системы и инициализации сети и потом запустить скрипт читать логи с 30 компов что то не очень хочется

Спасибо "centaurvv" за помощь

Отправлено: 16:44, 17-03-2010 | #4


Новый участник


Сообщения: 38
Благодарности: 0

Профиль | Отправить PM | Цитировать


Какой программой можно определить порядок загрузки служб Windows XP - 2003

Отправлено: 15:23, 19-03-2010 | #5


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Последним делом загружаются программы из папки "Startup". Можно оттуда запустить.

А зачем нужно это?

Код: Выделить весь код
ProcessWait("explorer.exe")
Explorer запускается до выполнения Run. И что именно "не отрабатывает", нет связи с Internet?

Отправлено: 22:43, 19-03-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Запуск скрипта после полной загрузки Windows

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - Восстановление загрузки Windows 7 после установки XP и создание двойной загрузки okshef Microsoft Windows 7 2001 13-01-2011 10:14
как заставить работать программу после полной переустановки windows? rizz Хочу все знать 2 16-08-2007 14:27
Автоматический запуск пакетного файла после полной загрузки ОС ChVL Автоматическая установка Windows 2000/XP/2003 8 11-05-2007 00:16
Запуск PHP-скрипта из командной строки Windows vadimiron Вебмастеру 4 01-12-2005 15:12




 
Переход