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

Вниз

Запускаю архиватор через shellexecute, как узнать когда закончил   Найти похожие ветки 

 
Sergey_Elf   (2002-10-10 10:32) [0]

Из программы запускаю архиватор через shellexecute, как узнать когда он закончил работу?


 
MBo ©   (2002-10-10 10:34) [1]

запускай Createprocess
пример с ожиданием в FAQ


 
Alx2 ©   (2002-10-10 10:40) [2]

или используй ShellExecuteEx - в нем также можно выяснить хэндл запущенного процесса для "пример с ожиданием в FAQ"


 
Sergey_Elf   (2002-10-10 10:48) [3]

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


 
Alx2 ©   (2002-10-10 10:55) [4]

>Sergey_Elf (10.10.02 10:48)

Не искать.
Тебе нужен хэндл процесса и WaitForSingleObject

Вот непроверенный пример с CreateProcess и архиватором

var
PInf: TProcessInformation;
StInfo: TStartupInfo;
begin
fillchar(StInfo, sizeof(StInfo), 0);
StInfo.dwFlags := STARTF_USESHOWWINDOW;
if not CreateProcess("pkzip.exe", PChar("some.zip"), nil, nil, False, 0, nil, nil, stInfo, PInf) then exit;

WaitForSingleObject(PInf.hProcess, INFINITE);
end;



 
Song ©   (2002-10-10 10:57) [5]

Ошибка в 17-ой строке.


 
andrey_pst ©   (2002-10-10 11:07) [6]

var
PChTmp : PChar;
si : STARTUPINFO;
pi : PROCESS_INFORMATION;
...
PChTmp := StrNew(PChar(ExtractShortPathName(GetCurrentDir) + "\rar.exe a " + fdPath + n_kontrakt + ".rar " + fdPath + n_kontrakt + "\*.xls -df -ep -m5 -ri15:0 -s -rr"));
ZeroMemory(@si, sizeof(si));
si.cb := SizeOf(si);
if not CreateProcess( nil, PChTmp, nil, nil, False, 0, nil, nil, si, pi ) then exit;
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
StrDispose(PChTmp);



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
1-68739
zam2000
2002-10-11 10:20
2002.10.21
Кто работал с Clipboard через API? Как туда положить CF_OEMTEXT


4-69077
Eug201
2002-09-06 10:40
2002.10.21
Richedit (центрировать по вертикали)


1-68866
ir_bit
2002-10-10 08:47
2002.10.21
System.pas никак не изменить ?


1-68797
INCOGNITO
2002-10-09 22:33
2002.10.21
Копирование файла


3-68613
xmag
2002-09-25 23:13
2002.10.21
Написание Б.Д. своего типа.