Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизУзнать о том что программа закрылась... Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c