Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Как отследить окончание процесса   Найти похожие ветки 

 
Tornado ©   (2004-05-12 09:11) [0]

У меня есть некая прога котораяв процессе своей работы (около 30-40 сек) создает лог-файл, причем постоянно дописывает в него данные пока работает. Прога сама не закрывается, просто останавливает работу, перестает писать в лог и все. Мне нужно отловить момент когда она закончила работать (может как-то через лог-файл?) и закрыть ее. Может есть какие еще мысли? Эту прогу запускаю через CreateProcess


 
Alx2 ©   (2004-05-12 09:23) [1]

WaitForSingleObject?


 
Alx2 ©   (2004-05-12 09:25) [2]

Сорри. Невнимательно прочел. "Перестала работать" сбило :)


 
Polevi ©   (2004-05-12 09:26) [3]

проверь открыт ли лог файл


 
Alx2 ©   (2004-05-12 09:30) [4]

Может, выручит FindFirstChangeNotification и его семейство?


 
Fedia   (2004-05-12 09:41) [5]

Может быть проверять FileAge лог-файла, если, например, 1 минуту не меняется, то работа с файлом прекращена и программу можно закрывать. Хотя предложение Polevi ©   (12.05.04 09:26) [3] мне больше нравится.


 
Tornado ©   (2004-05-12 10:00) [6]

>>> Polevi ©   (12.05.04 09:26) [3]

пожалуйста подскажите как проверить, книги нет под рукой, в нете что-то не найду. Спасибо за предложение


 
Fay ©   (2004-05-12 10:04) [7]

var
 h : Cardinal;
begin
 h := CreateFIle("c:\boot.ini", 0, 0, nil, OPEN_EXISTING, 0, 0);
 if h = Cardinal(-1) then
   begin
     if GetLastError = 32 then
       ShowMessage("Типа открыт");
     Exit;
   end;
 CloseHandle(h);
 ShowMessage("Похоже, не открыт");  
end;


 
pasha_golub ©   (2004-05-12 10:06) [8]

А вдруг программа не закрывает лог-файл?


 
Fay ©   (2004-05-12 10:13) [9]

2pasha_golub ©   (12.05.04 10:06) [8]
Да запросто! 8)


 
evvcom ©   (2004-05-12 10:19) [10]


> Прога сама не закрывается, просто останавливает работу,
> перестает писать в лог и все. Мне нужно отловить момент
> когда она закончила работать

Что значит "останавливает работу"? Усыпляет основной поток? Если это "перестает писать в лог", то это совсем не "закончила работать". Вы уж молодой человек определитесь, чего вы хотите. Если программа закончила писать в лог файл, то сама она может и завершиться без посторонней помощи, а этот момент отловить уже просто (см. [1]).


 
Polevi ©   (2004-05-12 10:20) [11]

если закрывает можно так

procedure TForm1.Button1Click(Sender: TObject);
var
 h:THandle;
begin
 h:=FindFirstChangeNotification("c:\",false,FILE_NOTIFY_CHANGE_LAST_WRITE);
 WaitForSingleObject(h,INFINITE);
 FindCloseChangeNotification(h);
 beep;
end;


 
Polevi ©   (2004-05-12 10:21) [12]

>evvcom ©   (12.05.04 10:19) [10]
я так понял в лог пишет чужая программа


 
evvcom ©   (2004-05-12 10:24) [13]


> я так понял в лог пишет чужая программа

Я так не понял:

> У меня есть некая прога котораяв процессе своей работы (около
> 30-40 сек) создает лог-файл, причем постоянно дописывает
> в него данные пока работает.


 
Polevi ©   (2004-05-12 10:32) [14]

У меня есть на диске некая прога котораяв процессе своей работы (около
> 30-40 сек) создает лог-файл, причем постоянно дописывает
> в него данные пока работает.

:))


 
Tornado ©   (2004-05-12 10:35) [15]

>>> evvcom ©   (12.05.04 10:24) [13]

прога чужая в доску (компании IBM), вообщем это выглядит так: запускается прога, просто форма с Memo или чем-то похожим, в Memo бежит список который строит эта прога, этот же список она паралельно пишет в лог. Когда список заканчивается, то и прокрутка оного в memo тоже останавливается но прога не закрывается (а очень бы хотелось чтобы она закрывалась сама!). Вот мне и надо ее закрыть НО не раньше пока она построит весь список и закинет его в лог. Надеюсь понятно описАл :)


 
Fay ©   (2004-05-12 10:39) [16]

Ну так чё, закрывает она файл или нет?


 
Tornado ©   (2004-05-12 10:45) [17]

>>> Fay ©   (12.05.04 10:39) [16]

не знаю не проверял еще но по сути должна закрывать


 
evvcom ©   (2004-05-12 10:46) [18]


> Tornado ©   (12.05.04 10:35) [15]

Ну ладно. А чего она продолжает работать? Возможно, что еще что-то в лог запишет? Или до скончания века больше ничего туда и не пишет?
Что можно посоветовать? Попробуй [11], если же файл остается открытым, то мне кажется, что самым корректным в этом случае будет внедрение dll и мониторинг записи в файл.


 
panov ©   (2004-05-12 10:56) [19]

Скомбинировав [1] и [5] можно решить эту задачу, мне кажется.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.034 c
1-1084129036
kas-t
2004-05-09 22:57
2004.05.23
Экономия ресурсов системы...


14-1083658587
Def_E
2004-05-04 12:16
2004.05.23
Область скходимости функционального ряда


1-1084206117
Nicolas1985
2004-05-10 20:21
2004.05.23
Разрешение экрана


6-1080927814
Max003
2004-04-02 21:43
2004.05.23
Как создать ini файл на сервере через FTP доступ


14-1082629795
31512
2004-04-22 14:29
2004.05.23
Считалочка, если вдруг программисты в прятки надумают играть...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский