Veze, linkovi
Kompjuter biblioteka
Korpa

KAKO DA – pokretanje procesa i njegovo okončavanje, Delphi

Ako vam ikada bude potrebno da pokrećete neku spoljnu aplikaciju iz vašeg projekta, a treba da sačekate njen završetak rada, nemojte koristiti proceduru ShellExecute. Zaobićićemo ovu proceduru korišćenjem funkcija: CreateProcess, WaitForSingleObject i CloseHandle. Pokrenite novi projekt i na formu postavite jedno komandno dugme, te događaju ButtonClick dodajte sledeći programski kod:

procedure TForm1.Button1Click(Sender: TObject);
var
proc_info: TProcessInformation;
startni_info: TStartupInfo;
begin
// inicijalizacija
FillChar(proc_info, sizeof(TProcessInformation), 0);
FillChar(startni_info, sizeof(TStartupInfo), 0); startni_info.cb := sizeof(TStartupInfo);
// pokusaj kreiranja procesa
if CreateProcess(’c:\windows\notepad.exe’, nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, startni_info, proc_info) <> False then
begin
// proces je uspesno kreiran i
//ceka se njegovo okoncanje…
WaitForSingleObject(proc_info.hProcess, INFINITE);
// Proces je zavrsen. Možemo ga zatvoriti
CloseHandle(proc_info.hProcess); Application.MessageBox(’Notepad zavrsio rad!’, ‘Info’, MB_ICONINFORMATION);
end
else begin
// nemogućnost kreiranja procesa
Application.MessageBox(’Nije moguce izvrsiti ‘ + ‘application’, ‘Error’, MB_ICONEXCLAMATION);
end;
end;

Kada pokrenete aplikaciju i kliknete dugme, pokrenuće se Windows editor “Notepad” (proverite samo putanju). Kada zatvorite “Notepad”, dobićete poruku o završetku pozvanog procesa. Eventualni problemi mogu da se jave kod funkcije WaitForSingleObjecti to u kombinaciji sa nekim aplikacijama.

Pripremio: Milenko Kusurović

 

         
Twitter Facebook Linkedin Pinterest Email
         

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar

 

 

 

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272