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

Показать сообщение отдельно

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


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

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


samara_andrey, я не особенно вдавался в суть скрипта (ошибок там не искал), но ето простой опрос на наличие новой версии программы, Вы говорили что видите как скрипт работает в цикле, или Вы не дали весь код проги или здесь просто нету цикла, есть условие которое выполняется-или не выполняется 1 раз)
а если при загрузке системы Вы сидите не под НАТом, то инет у вас включается на автоматически, следовательно секунд 30-40 после загрузки системы у Вас интернета нету, условие в ето время пытается получить файл с фтп, получает ошибку - нету инета и заканчивает выполнять программу, поскольку цикл опроса не организован
Ниже скрипт с использованием цикла

Opt ("TrayIconHide", 1)
Sleep(5000)

While 1

; я использую такой оборот, чтобы ждать появление соединения с интернетом, только когда оно появится - продолжить выполнение скрипта
Do
$size=InetGetSize("http://xxxxxx.html") ; - файл, имеющий размер больше 1 Байта, если инета нету - размер файла не может быть получен и отдаётся 0 и мы вновь опрашиваем его размер
Sleep(500)
Until $size > 1

InetGet("ftp://0000:0000000000@ftp.narod.ru/ini.ini", "ini.ini", 1)
$file = FileOpen("ini.ini", 0)
$chars = FileRead($file)
$file1 = FileOpen("dataini.ini", 0)
$chars1 = FileRead($file1)
if $chars <= $chars1 Then
Run ("installupdate.exe", "", @SW_HIDE)
Run ("rec.exe", "", @SW_HIDE)
Sleep(30000); pause 0.5 min
FileDelete("installupdate.exe")
FileClose($file)
FileDelete("ini.ini")
Exit
Else
FileClose($file)
FileClose($file1)
Sleep(5000) ; pause 5 sec
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec.jpg", "rec.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec2.jpg", "rec2.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec3.jpg", "rec3.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec4.jpg", "rec4.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec5.jpg", "rec5.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec6.jpg", "rec6.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec7.jpg", "rec7.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec8.jpg", "rec8.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec9.jpg", "rec9.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/rec10.jpg", "rec10.jpg", 1)
InetGet("ftp://0000:0000000000@ftp.narod.ru/installupdate.exe", "installupdate.exe", 1)
Sleep(5000);pause 5 sec
Run ("installupdate.exe", "", @SW_HIDE)
Run ("rec.exe", "", @SW_HIDE)
Sleep(30000); pause 0.5 min
FileDelete("installupdate.exe")
FileDelete("ini.ini")
$file1 = FileOpen("dataini.ini", 2)
FileWrite($file1, $chars)
FileClose($file1)
EndIf


;Здесь ставим время ожидания, чтобы не опрашивать сервер на обновление каждые 40-50 секунд, будем, например опрашивать каждые 5 минут
Sleep(300000) ; 5*60 000 = 300 000 - время ожидания 5 минут
Wend

Также рекомендую Вам убрать строку Opt ("TrayIconHide", 1) (если Вы её уберёте, то иконка скрипта при выполнении будет видна в трее) и добавить AutoItSetOption("TrayIconDebug", 1) - очень полезно для отладки скрипта, при выполнении скрипта при наведении мышки на иконку в трее - Вы будете видеть номер строки кода, выполняемой в данный момент скриптом и сможете понять где ошибка, также можно добавлять всюду выдачу Сообщений с описанием на какой строке скрипт находится и что щас будет делать


P.S. Скажите, пожалуйста, как окрашивать код в цвета Автоита при посте на форуме?

Последний раз редактировалось Рысь, 12-09-2008 в 17:24. Причина: добавление кода


Отправлено: 17:17, 12-09-2008 | #882