Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как проверить, работает- ли программа? (http://forum.oszone.net/showthread.php?t=145480)

Не флужу 18-07-2009 00:36 1171058

Как проверить, работает- ли программа?
 
Хочу написать сторонний скрипт, который проверял- бы работает- ли главный скрипт и если не работает- запукал- бы его. Собственно всё. может поможет кто с кодами? :)

Creat0R 18-07-2009 00:51 1171065

Цитата:

Цитата Не флужу
Хочу написать сторонний скрипт, который проверял- бы работает- ли главный скрипт и если не работает- запукал- бы его. »

Сторонний, или дочерний?
Из стороннего можно проверять некое скрытое, уникальное окно.
А с дочерним будет попроще, можно получить PID родительского процесса, и проверять его в списке процессов.

P.S
Это попахивает вредоносной программой :unsure: ...

Не флужу 18-07-2009 00:56 1171068

Озадачил вопросом :o
Вобщем попробую на словах обьяснить его работу

Запускаю скрипт, он смотрит, работает- ли другой скрипт. Если не работает- запускает его. И точка :)

Creat0R 18-07-2009 01:04 1171073

А теперь внимание главный вопрос - какая цель у "главного скрипта"? :)

Не флужу 18-07-2009 01:16 1171077

Эх...

"Главный скрипт" просматривает кэш и ищет нужную информацию.

Проблема в том, что информация в нужном .php файле постоянно меняется, а пока работает скрипт, .php не хочет обновлятся(или скрипт не хочет реагировать на изминения). Эту проблему хочу решить прописав остановку в "главном"(в случае если нет нужной информации) , в то время, как "другой скрипт" будет запускать "главный" если он не работает :unsure:

Не знаю насколько намудрил, но по другому не знаю как обьяснить ситуацию :dont-know

beve 18-07-2009 01:40 1171092

Цитата:

Цитата Не флужу
если не работает- запукал- бы его »

Если у главного скрипта есть окно, то можно попросту так:
Код:

Global $WinTitle ="заголовок окна программы для запуска (главный скрипт)"
Global $NameProg="имя программы для запуска (главный скрипт)"

If winExists($WinTitle)<>1 then  Run ($NameProg)

иначе нужно проверять наличие процесса главного скрипта с помощью ProcessExists().

Creat0R 18-07-2009 01:41 1171093

Цитата:

Цитата Не флужу
информация в нужном .php файле постоянно меняется, а пока работает скрипт, .php не хочет обновлятся(или скрипт не хочет реагировать на изминения). Эту проблему хочу решить прописав остановку в "главном"(в случае если нет нужной информации) , в то время, как "другой скрипт" будет запускать "главный" если он не работает »

Мне кажется тут не нужен вовсе второй скрипт. Тут дело в том как проверяется файл, то что он “не хочет обновляться”, говорит лишь о том что файл занят скриптом, т.е была вызвана команда FileOpen(), хотя из справки становится понятным, что после завершения операции с файлами, нужно вызвать FileClose().

Вобщем, “главный скрипт” в студию!

Не флужу 18-07-2009 01:42 1171094

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:

Creat0R 18-07-2009 01:57 1171100

Не флужу,
Цитата:

Попробую выделить нужную часть
Ну верно, тут сразу видно что проблема в не закрытом файле:

Код:

$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


Не флужу 18-07-2009 02:03 1171103

Creat0R, Спасибо. Буду испытывать- надеюсь поможет. Получается, если нет Fileopen то и Fileclose не требуется :closed-to

Отпишу после первых испытаний :tongue:

Creat0R, Спасибище. Работает как часы :yahoo: Выручил, дружище :)

РешеноООоо :)


Время: 01:59.

Время: 01:59.
© OSzone.net 2001-