-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Как проверить, работает- ли программа?
Хочу написать сторонний скрипт, который проверял- бы работает- ли главный скрипт и если не работает- запукал- бы его. Собственно всё. может поможет кто с кодами? :)
|
Цитата:
Цитата Не флужу
Хочу написать сторонний скрипт, который проверял- бы работает- ли главный скрипт и если не работает- запукал- бы его. »
|
Сторонний, или дочерний?
Из стороннего можно проверять некое скрытое, уникальное окно.
А с дочерним будет попроще, можно получить PID родительского процесса, и проверять его в списке процессов.
P.S
Это попахивает вредоносной программой :unsure: ...
|
Озадачил вопросом :o
Вобщем попробую на словах обьяснить его работу
Запускаю скрипт, он смотрит, работает- ли другой скрипт. Если не работает- запускает его. И точка :)
|
А теперь внимание главный вопрос - какая цель у "главного скрипта"? :)
|
Эх...
"Главный скрипт" просматривает кэш и ищет нужную информацию.
Проблема в том, что информация в нужном .php файле постоянно меняется, а пока работает скрипт, .php не хочет обновлятся(или скрипт не хочет реагировать на изминения). Эту проблему хочу решить прописав остановку в "главном"(в случае если нет нужной информации) , в то время, как "другой скрипт" будет запускать "главный" если он не работает :unsure:
Не знаю насколько намудрил, но по другому не знаю как обьяснить ситуацию :dont-know
|
Цитата:
Цитата Не флужу
если не работает- запукал- бы его »
|
Если у главного скрипта есть окно, то можно попросту так:
Код:
Global $WinTitle ="заголовок окна программы для запуска (главный скрипт)"
Global $NameProg="имя программы для запуска (главный скрипт)"
If winExists($WinTitle)<>1 then Run ($NameProg)
иначе нужно проверять наличие процесса главного скрипта с помощью ProcessExists().
|
Цитата:
Цитата Не флужу
информация в нужном .php файле постоянно меняется, а пока работает скрипт, .php не хочет обновлятся(или скрипт не хочет реагировать на изминения). Эту проблему хочу решить прописав остановку в "главном"(в случае если нет нужной информации) , в то время, как "другой скрипт" будет запускать "главный" если он не работает »
|
Мне кажется тут не нужен вовсе второй скрипт. Тут дело в том как проверяется файл, то что он “не хочет обновляться”, говорит лишь о том что файл занят скриптом, т.е была вызвана команда FileOpen(), хотя из справки становится понятным, что после завершения операции с файлами, нужно вызвать FileClose().
Вобщем, “главный скрипт” в студию!
|
beve, Спасибо. Именно этого и ждал :clapping:
Creat0R,
Попробую выделить нужную часть, но у меня проблемы с правописанием :yes:
Код:
$aString = String() ;Здесь у меня искомый стринг
$file = FileOpen("H:\Documents and Settings\Admin\Рабочий стол\HandyCache\Cache\conf.php", 0)
FileRead ( $file)
$p=0
While $p=0
$sRead = FileRead("H:\Documents and Settings\Admin\Рабочий стол\HandyCache\Cache\conf.php") ; Читаем файл в кэше
$array = StringRegExp($sRead, $aString, 1)
If Not @error Then
If $array[2] < 2500 And $array[3] < 2500 Then ; Цифры в нужном диапозоне
_FileWriteLog(@ScriptDir &"\log.log", "Есть")
$Date = string(@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC)
; Лог записать
$p=1
EndIf
endif
WEnd
P.S. Очень серьёзные проблемы с правописанием, приношу извинения. :cry:
|
Не флужу,
Цитата:
Попробую выделить нужную часть
|
Ну верно, тут сразу видно что проблема в не закрытом файле:
Код:
$aString = String() ;Здесь у меня искомый стринг
;Эти строчки не нужны, они вообще ничего не делают в текущем их виде
;$file = FileOpen("H:\Documents and Settings\Admin\Рабочий стол\HandyCache\Cache\conf.php", 0)
;FileRead($file)
$p = 0
While $p = 0
$sRead = FileRead("H:\Documents and Settings\Admin\Рабочий стол\HandyCache\Cache\conf.php") ; Читаем файл в кэше
$array = StringRegExp($sRead, $aString, 1)
If Not @error Then
If $array[2] < 2500 And $array[3] < 2500 Then ; Цифры в нужном диапозоне
_FileWriteLog(@ScriptDir & "\log.log", "Есть")
$Date = String(@YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC)
; Лог записать
$p = 1
EndIf
EndIf
Sleep(10) ;Это чтобы не нагружать процессор
WEnd
|
Creat0R, Спасибо. Буду испытывать- надеюсь поможет. Получается, если нет Fileopen то и Fileclose не требуется :closed-to
Отпишу после первых испытаний :tongue:
Creat0R, Спасибище. Работает как часы :yahoo: Выручил, дружище :)
РешеноООоо :)
|
Время: 01:59.
© OSzone.net 2001-