Проблемы с завершением процесса - exitprocess

vln1981

New member
01.08.2015
4
0
#1
Моя программа Delphi вызывает Exe-программу. Если, после исполнения вызванной программы, применяю TerminateProcess - не осовбождаются используемые ею файлы, если применить ExitProcess - вызывающая программа завершается тоже.
Подскажите, как правильно использовать ExitProcess, чтобы не завершалась вызывающая программа?

procedure exec(S:string;out R1,R3:string);
var si : Tstartupinfo;S1,S2,S3,S4:string;
p : Tprocessinformation;
M1:string; U:uint; Pr:cardinal;
Fh,F:TextFile;
Mch: Pchar;
begin
AssignFile(Fh,cnt.kbpath+'invc23.ari');
Rewrite(Fh);
write(Fh,S);
closeFile(Fh);
FillChar( si, SizeOf( si ) , 0 );
with si do begin
cb:=sizeOf(si);
dwFlags:=STARTF_USESHOWWINDOW;
wShowWindow:= sw_Hide;
end;
Mch:= Pchar(Cnt.ExePath);
CreateProcess(Pchar(Cnt.ExePath+'cgtfn.exe'),nil,nil,nil,false,Create_default_error_mode ,nil,Mch,si,p);
WaitforSingleObject(p.hProcess,infinite);
TerminateProcess(p.hProcess,Pr);
// ExitProcess(p.hProcess);
CloseHandle( p.hProcess);
CloseHandle(p.hThread);
end;