🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: CreateProcess i zamykanie

#334891
From: Arivald
Date: Mon, 23 Jan 2012 15:12
66 lines
3816 bytes
W dniu 2012-01-23 14:40, GAD Zombie pisze:
> W dniu 2012-01-23 14:18, Arivald pisze:
>> W dniu 2012-01-23 13:34, GAD Zombie pisze:
>>> 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
>>
>> Użyj CREATE_NO_WINDOW w CreateProcess dwCreationFlags, i nie będziesz
>> musiał się bawić w ukrywane okna poprzez STARTUPINFO
>
> Sprawdze to, chociaz skoro efekt ten sam to zadna roznica ;)

Różnica taka że z CREATE_NO_WINDOW okno konsoli nie jest tworzone, a z 
SW_HIDE jest tworzone tylko nie pokazywane. Ale to szczegół.

>> Jeśli to Twój program (możesz go zmienić) to przerób go tak żeby się sam
>> zamykał jak główny padnie.
>
> Wlasnie nie jest moj i nie mam na to wplywu.
>
>> Jeśli nie to napisz własny program (konsolowy), który to będzie
>> uruchamiał tamten, i zamykał go jak główny padnie.
>> Program na tyle prosty że sam nie będzie padał ;-)
>>
>>
>> A tak przy okazji, co ma robić ten niewidoczny program? Bo może da się
>> to jeszcze inaczej załatwić, może lepiej.
>
> Tego raczej nie obejde. To program w javie, ktory stoi dluzszy czas i
> jest jakby serwerem dla mojej aplikacji. Pozwala na komunikacje ze soba
> przez tcp/ip. Tamten jest napisany w javie i odpalany jest przez
> java.exe (...) i to wlasnie odpala sie w tym oknie konsolowym.
> Wszystko gra do momentu, jesli moj program padnie. Wtedy tamten zostaje
> uruchomiony i zle to wyglada. Chcialbym, zeby tez sie zawsze zamykal.
>
> Myslalem juz o osobnym malym programie, ktory bedzie tego wszystkiego
> pilnowal, ale tym sposobem uruchamiam juz 3 rozne aplikacje
> jednoczesnie, zeby dzialala wlasciwie jedna, stad takie rozwiazanie mi
> sie nie podoba i szukam innej metody.
>
> Czy naprawde nie da sie uruchomic aplikacji tak, zeby byla "dzieckiem"
> procesu, ktory ja uruchomil?
>

Nie w Windows.

Opcja jest taka żeby dopisać klasę javy, owijkę, i zamiast wołać w linii 
komend oryginalną klasę wołać swoją. A Twoja najpierw nawiąże połączenie 
z aplikacją (np nowy wątek i sprawdzanie czy okno aplikacji istnieje, 
jak już nie to kill) a potem uruchomi oryginalną klasę, jej funkcję main().
Zadziała jeśli JAR nie jest podpisany cyfrowo.
Ale do tego musiał byś mieć kogoś z Javą pod ręką.

A jeśli nie, to tylko pozostaje własny program-nadzorca.

Możesz też spróbować tamtą aplikację odpalić w swoim procesie, używając 
jvm.dll z pakietu Javy. Wtedy, jakkolwiek Twoja aplikacja skończy żywot, 
aplikacja Javy też zostanie zakończona.
Więcej w linku:
http://home.pacifier.com/~mmead/jni/delphi/JEDI/DOCS/delphi-jni-3.html

-- 
Arivald
Technical Details
Message-ID: <jfjtdd$upj$1@news.dialog.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <jfjk1q$ivu$1@opal.futuro.pl> <jfjmmo$rbn$1@news.dialog.net.pl> <jfjntq$rnv$1@opal.futuro.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Arivald <arivald_@AT_interia_DOT_.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: CreateProcess i zamykanie
Date: Mon, 23 Jan 2012 16:12:47 +0100
Organization: Dialog Net
Lines: 67
Message-ID: <jfjtdd$upj$1@news.dialog.net.pl>
References: <jfjk1q$ivu$1@opal.futuro.pl> <jfjmmo$rbn$1@news.dialog.net.pl> <jfjntq$rnv$1@opal.futuro.pl>
NNTP-Posting-Host: poczta.pgs-soft.com
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1327331565 31539 62.87.249.67 (23 Jan 2012 15:12:45 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Mon, 23 Jan 2012 15:12:45 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0) Gecko/20111222 Thunderbird/9.0.1
In-Reply-To: <jfjntq$rnv$1@opal.futuro.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit