Newsgroup: it.comp.programmare.win32
Titolo: Nascondere una applicazione

Come faccio per rendere invisibile la mia applicazione anche nel task
manager di windows ?
grazie

 ha scritto nel messaggio
news:3a29324...@news.libero.it...


sicuro ci sono modi migliori... ma se non ti risponde nessuno, puoi provare
questo
come flag della finestra usa WS_EX_TOOLWINDOW, e poi credo ci voglia pure
WS_POPUP, ovviamente non la devi visualizzare...

BOOL ShowWindow( HWND hWnd, int nCmdShow);
Si, fin qui ci ero arrivato .
La mia richiesta era quella di nascondere l'applicazione anche al Task
Manager di Manager di Windows ( quello che si apre quando si fa
CTrl-Alt-Canc).
grazie

CTrl-Alt-Canc).
Non e' semplice.
Non c'e' alcun modo, se non quello di "iniettare" il tuo processo in
un altro, ma e' un'operazione a basso livello che ti sconsiglio.
-- 
Andrea Laforgia (ICQ# 87230455) --------------------------
Non scrivetemi in privato, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

 grazie
-- 
mailto:
m.col...@softhor.com
http://www.softhor.com/developmentarea
ICQ# 96413649
/**************************************************
"I've... seen things you people wouldn't believe.
Attack ships on fire off the shoulder of Orion.
I watched C-beams... glitter in the dark near the 
Tanhauser Gate.
All those... moments will be lost... in time...,
like... tears... in... rain."
Blade Runner.
**************************************************/

 ha scritto nel messaggio
news:90btl1$fum$1...@fe2.cs.interbusiness.it...


un altro, ma e' un'operazione a basso livello che ti sconsiglio.
credo intendesse il task manager di win 9x, non quello di win nt... quello 
di win 9x non elenca i processi con la flag di service process
l'api era RegisterServiceProcess()


Bisogna avvisare Windows che l'applicazione e`, in realta`, un servizio.
Puoi usare questa mia funzione:
void Gen_ImpostaServizio(BOOL bCome)
{
  #define RSP_UNREGISTER_SERVICE      (0x00000000)
  #define RSP_SIMPLE_SERVICE          (0x00000001)
  typedef UINT (CALLBACK* LPFUNCTION) (DWORD, DWORD);
  LPFUNCTION p_function;
  p_function = (LPFUNCTION)
GetProcAddress(GetModuleHandle("KERNEL32.DLL"),"RegisterServiceProcess");
  if (bCome)
    p_function(0,RSP_SIMPLE_SERVICE);        // Toglie il programma dal Task
Manager
  else
    p_function(0,RSP_UNREGISTER_SERVICE);    // Rimette il programma nel
Task Manager
}
susanna

di win 9x
Sotto Win9x non esiste ALCUN task manager. Forse ti riferisci alla
task list. Se si parla di Task Manager, assumo che sia NT.
In ogni caso la risposta e' equivalente. "RegisterServiceProcess"
serve per altri scopi, a mio avviso, e non va usata per questo.
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

Bisogna avvisare Windows che l'applicazione e`, in realta`, un servizio.
Se ne e' gia' parlato un'altra volta.
Trasformare una normale applicazione in un servizio ti porta a dei
rischi. Uno di essi e' quello che l'applicazione non si chiude tra una
sessione e l'altra di log-in/log-off e questo puo' costituire un
problema (come e' successo tempo fa su borland.delphi.public.win32).


problema (come e' successo tempo fa su borland.delphi.public.win32).
vero
ma io ad esempio ho bisogno che un web server si avvii come servizio e 
rimanga presente logoff o meno. Il fatto è che è programmato in maniera 
così imprudente da non prevedere affatto la possibilità... idem per 
l'antivirus

serve per altri scopi, a mio avviso, e non va usata per questo.
altri scopi?

altri scopi?
"altri" ? unico scopo e' quello di registrare un'applicazione come
servizio.


rimanga presente logoff o meno.
Ti serve creare un servizio e questo e' quello per cui l'API in
questione e' stata studiata.


 Sotto Win9x non esiste ALCUN task manager.
c:\windows\taskman.exe
--
- Carlo -
c.b...@libero.it

 manager di windows ?
Penso che tu faccia riferimento alla Task List, se lavori sotto Windows
9x/ME puoi ricorrere a RegisterServiceProcess, se lavori sotto NT c'č
bisogno di qualche operazione un po' piů Low Level ... bisognerebbe
ricorrere a CreateRemoteThread e forse, per convenienza, mappare qualche DLL
nel processo esterno.
Saluti,



ma comunque se non hai una soluzione migliore credo sia l'unica e non puoi
dire di non usarla visto che č il metodo piů veloce (anche se sicuramente
poco pulita visto  i casini che potrebbe causare al sistema)

 problema (come e' successo tempo fa su borland.delphi.public.win32).
Cioe'?
susanna

c:\windows\taskman.exe
Mi riferisco all'applicazione EQUIVALENTE di NT.


poco pulita visto  i casini che potrebbe causare al sistema)
E' una funzione (sono stanco di ripeterlo) che NON E' STUDIATA per
questi scopi. Nonostante qualcuno si ostini stupidamente a
consigliarla per nascondere le applicazioni, essa puo' creare casini
(come e' gia' stato riportato in un ng americano) quindi io LA
SCONSIGLIO.


un'applicazione vera e propria che gira SOLO sotto NT.
non č questo... aaw, lascia stare, sono solo i rimasugli della mia permanenza 
in iclvb... i lamer fioccavano come neve a Cortina... le domande piů 
gettonate erano "come formatto l'hard disk?" e "come nascondo la mia 
applicazione?"

 Mi riferisco all'applicazione EQUIVALENTE di NT.
Trattasi comunque di Task Manager, mi fai sapere come hai capito che si
trattava di NT visto che esiste un TM
anche su Win9x?


 consigliarla per nascondere le applicazioni,
Andrea, su questo punto abbiamo già discusso e non ho la minima intenzione
di riaprire un Flamethread ... cmq non puoi dare dello *stupido* a chi la
consiglia solo perchè tu (a ragione o a torto) la vedi, discutibilmente, in
altro modo.


 applicazione?"
E allora? Non vedo cosa ci sia di strano in nessuna delle due domande.


 SCONSIGLIO.
che sia sconsigliata è stato ripetuto fino alla noia ma è L'UNICO METODO
:))
nella programmazione per windows ci sono milioni di cose sconsigliate ti
sembra che questa faccia poi così tanti danni ???
............
ciaoo

E allora? Non vedo cosa ci sia di strano in nessuna delle due domande.
Di solito i "lamer" si nascondono e poi formattano... 8)
Luc

di riaprire un Flamethread
Grazie! ^_______^
Luc

E allora? Non vedo cosa ci sia di strano in nessuna delle due domande.
i post erano sgrammaticati, scritti in tutto maiuscolo oppure con le "k" al 
posto delle "c"... insomma...

Puoi usare questa mia funzione:
Ok ,ti ringrazio . 
La funzione fa il suo lavoro perfettamente ed e' proprio quello che
cercavo .
ciao

 :))
La tecnica di iniettare la DLL in un altro processo con uno hook e poi
lanciare un thread da la` non funziona?
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/

 questi scopi. Nonostante qualcuno si ostini stupidamente a
Stupidamente tua nonna.
susanna

(come e' gia' stato riportato in un ng americano)
ok... io me li son persi, 'sti famosi casini... me ne diresti qualcuno?

 lanciare un thread da la` non funziona?
Su Windows 9x/ME si, su Windows NT/2K no, appena termini il processo che ha
mappato la DLL nel processo remoto termina anche il thread iniettato.
Ciao!


 iniettato.
Ah, quindi poi non ci sei riuscito? O non hai piu` provato?
Questa cosa mi incuriosisce da un po', bisognerebbe vedere come fa
Netbus (che a quanto mi dicono funziona anche sotto a NT).


 Netbus (che a quanto mi dicono funziona anche sotto a NT).
Anche BO2K (
www.bo2k.com
) dovrebbe farlo ... io pensavo all'iniezione di
Thread mediante CreateRemoteThread e poi caricare eventuali DLL direttamente
dal Thread Remoto (già iniettato con CreateRemoteThread), in teoria la DLL
dovrebbe rimaner mappata senza problemi. Uno dei problemi di CRT è il
settaggio dei privilegi, bisogna vedere cosa chiede.
Se hai delle novità sai dove trovarmi!
Ciao! :)
