Вниз
Скачать: CL | DM;

Узнать о том что программа закрылась...   Найти похожие ветки 

 
Falcon(TFsoft) ©   (2005-01-20 21:56) [0]

Здравствуйте.

Подскажите пожайлуста, каким образом мне узнать что внешняя программа вызываемая из моей программы методом Winexec (или каким другим методом) закончила своё действие, тоесть закрылась.
К примеру пробовал такой вариант:

ProgramHandle := Winexec(PChar(format("%s m -ep1 "%s" "%s"",[RarPath, AName, FromDir])), SW_RESTORE);
     while IsWindowVisible(ProgramHandle) do
        Sleep(25);


Тут вызывается к примеру ехе рара, мне нужно дождаться пока  он упакует файлы, после чего провести следующие операции, но описанный метод не работет... :(
Объясните где моя ошибка, или подскажите каким образом узнать когда рар закроется - тоетсь выполнит своё действие?

Зарание благодарен.


 
aus   (2005-01-20 22:00) [1]

CreateProcess()
WaitForSingleObject()


 
Falcon(TFsoft) ©   (2005-01-21 00:48) [2]

Пробовал, но вызывало ошибку, может я какой-то параметр задаю неправлино?
Если не сложно то напиши какие они должны быть...


 
jack128 ©   (2005-01-21 01:20) [3]

Falcon(TFsoft) ©   (21.01.05 0:48) [2]
может я какой-то параметр задаю неправлино?

может быть. А мы откуда знаем??  Код давай, а там посмотрим.


 
aus   (2005-01-21 04:01) [4]


var
   ProcessInformation: _process_information;
   SInfo: _startupinfoa;
...............
CreateProcess(nil,pchar(CmdLine),nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,sInfo,ProcessInformation);
WaitForSingleObject(ProcessInformation.HProcess,INFINITE);
...............


 
Александр1   (2005-01-21 06:48) [5]

Сделай так. Программа которая у тебя чё-то упаковывает пусть создаёт файл например x.xxx. Пока прога работает файл существует. При закрытии программы (при выполнении процедуры procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DeleteFile("x.xxx.’);
end;)
Основная программа следит за файлом непрерывно. Проверяет его наличие. Если файл исчезнет значит программа завершила свою работу.

procedure TForm1.Timer1Timer(Sender: TObject);
var ss:string;
begin
ss:=FileSearch(ExtractFilePath(Application.ExeName)+"x.xxx","");
if ss<>ExtractFilePath(Application.ExeName)+"x.xxx" then begin
…..
…..
Файл исчез, значит, программа завершилась
end;
Вот и всё!



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1105998632
Константинов
2005-01-18 00:50
2005.02.06
Звонилки. Как с ними бороться?


1-1106300584
Мила
2005-01-21 12:43
2005.02.06
Закрывается программа


6-1100943955
Неизвестный
2004-11-20 12:45
2005.02.06
Проблема с отправкой писем


1-1106635693
Артем К.
2005-01-25 09:48
2005.02.06
Подскажите, как напечатать графики 3-х TChart(ов) на одном листе?


1-1106379779
Unknown
2005-01-22 10:42
2005.02.06
Как развернуть приложение после Application.Minimize и как вызват




   Наверх