🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #334882

CreateProcess i zamykanie

#334882
From: GAD Zombie
Date: Mon, 23 Jan 2012 12:34
50 lines
2399 bytes
Witam

Napisalem sobie funkcje, za jakimis przykladami z sieci, ktora ma za 
zadanie wlaczyc jakas aplikacje w osobnym watku, ukrywajac jej okno. 
Zalozenie jest takie, ze razem z moim programem wlacza sie drugi program 
z linii polecen i ma nie byc widac tego czarnego okna commandline. Przy 
zamykaniu aplikacji wylaczam ten uruchomiony proces, korzystajac z id, 
ktore zwrocilo mi CreateProcess. Oto ta funkcja:

function WlaczExeka(sciezka, parametry: string): cardinal;
var
   startup: STARTUPINFO;
   inf: PROCESS_INFORMATION;
begin
   result := 0;

   ZeroMemory(@startup, SizeOf(STARTUPINFO));
   startup.dwFlags := STARTF_USESHOWWINDOW;
   startup.wShowWindow := SW_HIDE;
   startup.cb:= SizeOf (STARTUPINFO);

   if CreateProcess(pchar(sciezka), pchar(parametry), nil, nil, false, 0 
, nil, nil, startup, inf) then
   begin
     result := inf.dwProcessId;
   end
   else
   begin
//    Memo1.lines.add('Niemożliwe uruchomienie: ' + sciezka);
   end;
end;


Calosc dziala poprawnie, jednak mam problem innego typu.
Zakladajac, ze moja aplikacja sie jakos wywali, to ten stworzony proces 
zostaje w pamieci i dziala nadal, chociaz moja aplikacja jest juz 
zamknieta (bo przy wywaleniu sie nie zamknela procesu potomnego).

I tu pytanie: Jak to zrobic, zeby ten proces zawsze sie zamknal razem z 
moja aplikacja? Chodzi mi po glowie, ze proces utworzony przeze mnie 
powinien miec jakiegos parenta, ktorym jest moja aplikacja. Jesli moja 
aplikacja sie zamknie, to tamten proces tez musi sie zakonczyc.

Jak to mozna rozwiazac?


-- 
GAD Zombie
http://gad.art.pl/  http://sadist.art.pl/ 
http://gry-samochodowe.gad.art.pl/
Technical Details
Message-ID: <jfjk1q$ivu$1@opal.futuro.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!not-for-mail
From: GAD Zombie <gad@USUN.gad.USUN.art.pl>
Newsgroups: pl.comp.lang.delphi
Subject: CreateProcess i zamykanie
Date: Mon, 23 Jan 2012 13:34:43 +0100
Organization: Pro Futuro
Lines: 50
Message-ID: <jfjk1q$ivu$1@opal.futuro.pl>
NNTP-Posting-Host: 195.245.84.100
Mime-Version: 1.0
X-Trace: opal.futuro.pl 1327321978 19454 195.245.84.100 (23 Jan 2012 12:32:58 GMT)
X-Complaints-To: usenet@futuro.pl
NNTP-Posting-Date: Mon, 23 Jan 2012 12:32:58 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7) Gecko/20100111 Thunderbird/3.0.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit