Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Как выяснить, работает ли программа или уже завершилась?   Найти похожие ветки 

 
Olsher   (2004-06-15 10:08) [0]

Как узнать, закончила ли свою работу другая программа, запущенная из моей программы?


 
Fay ©   (2004-06-15 10:11) [1]

Запускать её самому или перебирать процессы


 
Fay ©   (2004-06-15 10:12) [2]

Так. Торможу 8)


 
Mim1 ©   (2004-06-15 10:18) [3]

procedure TForm1.Button1Click(Sender: TObject);
var si:STARTUPINFO;
   pi:PROCESS_INFORMATION;
   xc:cardinal;
begin
   ZeroMemory(@si,sizeof(si));
   si.cb:=SizeOf(si);
   si.wShowWindow := SW_HIDE;
   si.dwFlags := STARTF_USESHOWWINDOW;

   CreateProcess(nil,
{$ifdef home}
     PCHAR("rar32 a test.zip "+"C:\Video\nge\nge-01.viv")
{$else}
     PCHAR("rar32 a test.zip "+Application.EXENAME)
{$endif}
     ,nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,si,pi);
   CloseHandle(Pi.hThread);
   with tanimate.Create(self) do
     begin
       Parent := self;
       Align := alClient;
       BringToFront;
       CommonAVI := aviCopyFiles;
       Active := True;
       StopFrame := 34;
       while WaitForSingleObject(Pi.hProcess, 10) = WAIT_TIMEOUT do
         Application.ProcessMessages;
       free;
     end;
   if GetExitCodeProcess(Pi.hProcess,xc) then
     showMessage(inttostr(xc));
   CloseHandle(Pi.hProcess);
end;


 
Тимохов ©   (2004-06-15 10:19) [4]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621841&n=15
возможно это поможет.

нужно waitforsingleobject делать не infinite (т.е. бесконечно), а 0, т.е. тут же получить signaled (т.е. завершился) ли процесс или нет. надо проверять р-т этой функции. посмотри в msdn про waitforsingleobject



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

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-1086700614
Baks
2004-06-08 17:16
2004.06.27
Угадайка


3-1086251119
Zolboch
2004-06-03 12:25
2004.06.27
Database desktop


1-1087142375
Bochka
2004-06-13 19:59
2004.06.27
String to Real как правильно записать ?


4-1084806538
Gosha77
2004-05-17 19:08
2004.06.27
Как найти зависшее приложение/процесс


3-1086245573
din
2004-06-03 10:52
2004.06.27
Какая функция подсчитывает количество лет DateDiff не проходит