[ Ucim_pomalo @ 30.08.2005. 19:05 ] @
| Radim neku aplikaciju u Borland C++ Builderu i potrebno mi je dan npr. klikom na dugme otvorim neku drugi program npr. winamp. Pokusavao sam na razne nacine preko CreateProcess ili ShellExecute i sl. I uspijem pokrenuti zeljeni program.
No takodje zelim da npr. klikom na neko drugo dugme zatvorim taj pokrenuti program, to nikako ne uspijevam.
Da li bi mi neko mogao pomoci, posto mi je ovo jako potrebno.
Hvala svima, unapred. |
[ X Files @ 30.08.2005. 20:19 ] @
ShellExecute() ti (mislim) nece puno pomoci oko toga, mada mozda i moze nekim
malo zaobilaznim resenjem.
Bolje koristi CreateProcess() jer vraca Proces Handle, koji kasnije mozes da
prosledis za TerminateProcess().
E sad, to je ipak NASILAN nacin.
Microsoft umesto toga predlaze slanje WM_CLOSE poruke svim prozorima procesa.
Ako WinAmp, ima neke druge prozore (a mislim da ima) mozes koristiti:
EnumWindows() i GetWindowThreadProcessId()
...da otkrijes sve prozore koji pripadaju WinAmp-u (uporedjujuci ih sa ID-jem
procesa koji se takodje vraca sa CreateProcess(), a zatim ih pozatvaraj sve sa
SendMessage().
Otprilike tako, ako nesto nisam prevideo.
[ itf @ 30.08.2005. 21:39 ] @
Pojam "nasilno" općenito u informatici je meni zaista bezveze. Cijeli kompjuter je ništa drugo nego hrpa čipova i el. signala i NIKAD GA NE PERSONALIZIRAM. Još ga i dan-danas kad popi*dim puknem nogom kad mi na 3.0 GHz šteka WinAmp.
Ne jako. Naravno, ne zato što bi to njega zabolio, već što bi zabolilo moj novčanik
[Ovu poruku je menjao itf dana 30.08.2005. u 22:44 GMT+1]
[ MilošV @ 31.08.2005. 07:58 ] @
Potrazi SHELLEXECUTEINFO & WaitForSingleObject u helpu & na netu...
[ X Files @ 31.08.2005. 08:46 ] @
Problem kod *nasilnog* zatvaranja moze biti u tome sto program ne stigne da
snimi neka poslednja stanja programa u Registry ili INI, i sl., pa se moze desiti
da program nakon sledeceg startovanja, na primer nema polozaj na kome ste
ga poslednji put ostavili...
Naravno, ovo je individualno za svaki program...
Dok se kod SendMessage() i WM_CLOSE (mislim) moze desiti da te program
pita "Do you realy want to close?", naravno ako je tako programiran i/ili podesen
OnClose() ili OnCloseQuery() dogadjaj...
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.