skirk (Ex-Member)
Pro
Messaggi: 199
Iscritto: 01/09/2005
|
Quando creo un prgz in C++ e lo eseguo, non voglio che venga visualizzato ne come finestra ne nel task manager, che comando uso?
|
|
cH!cus (Ex-Member)
Pro
Messaggi: 149
Iscritto: 03/04/2006
|
Beh nei sistemi Win 9x bastava due funzioni API (mi pare RegisterProcess e/o qualcosa del genere...) che, praticamente, attraverso dei precisi parametri passati a questa funzione facevano diventare il processo un Service, e quest'ultimo non veniva visualizzato nella task list. Con i sistemi operativi creati con base NT (quindi Win nt, xp, 2000 eccc) non funziona più il metodo scritto sopra.
In alcuni modi è possibile comunque disabilitare direttamente il taskmanager di windows (del tipo che se premi ctrl+alt+canc non viene fuori nessun taskmanager), ma non ricordo bene come (cerca su google).
Se poi non riesci proprio a risolvere, beh, ti conviene studiarti bene il core di Windows. Magari potresti creare un programma che prende il sopravvento su tutto il sistema operativo (non è facilissimo ma nulla è impossibile se lo si vuole).
Se vuoi un consiglio studiati affondo le API win32 e come interagiscono con il sistema.
ciau
|
|
skirk (Ex-Member)
Pro
Messaggi: 199
Iscritto: 01/09/2005
|
Si, però a me viene fuori la finestrella di DOS e io voglio che questo non accada . Non mi serve che non si visualizzi nel Task...
SkirK
|
|
cH!cus (Ex-Member)
Pro
Messaggi: 149
Iscritto: 03/04/2006
|
Del task manager l'avevi scritto te eh... Cmq in C++ per nascondere la tua finestra dovresti ricavare l'handle della tua finestra con GetModuleHandle e poi passarlo a ShowWindow (qui c'è la lista dei parametri... http://msdn.microsoft.com/library/default.asp?url=/library ... dicendogli di mettere hidden la finestra. Premetto che per fare questo devi includere windows.h. Allora il codice dovrebbe essere una cosa del genere...
Codice sorgente - presumibilmente Plain Text |
/* Con questo ricavi l'handle della tua finestra e lo metti nella variabile hInstance */
HINSTANCE hInstance = GetModuleHandle(NULL)
/* poi con questo qua sotto non dovresti vedere piu la finestra. */
ShowWindow(hInstance, SW_HIDE);
|
Il codice qui sopra funziona solo se compili il programma in modo che sia per Win32 (tipo come Vc++ o DevC++). Se lo compili con roba tipo borland turbo c++ non penso funzioni xche quello è dos puro.
Ti consiglio di leggerti bene la pagina di cui ti ho mando il link (è l'MSDN).
ciao fammi sapere
|
|
skirk (Ex-Member)
Pro
Messaggi: 199
Iscritto: 01/09/2005
|
Si, scusa per il task, non ero stato chiaro, grazie, dovrebbe bastarmi
|
|
cH!cus (Ex-Member)
Pro
Messaggi: 149
Iscritto: 03/04/2006
|
di nulla, se posso aiutare aiuto
|
|
skirk (Ex-Member)
Pro
Messaggi: 199
Iscritto: 01/09/2005
|
Cazz, non riesco a fa funzionare il tutto. Il codice non funge.
Codice sorgente - presumibilmente Plain Text |
ShowWindow(hInstance, SW_HIDE);
|
|
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Errore di compilazione o runtime?
|
|
skirk (Ex-Member)
Pro
Messaggi: 199
Iscritto: 01/09/2005
|
#include <iostream>
#include <windows.h>
int main() {
/* Con questo ricavi l'handle della tua finestra e lo metti nella variabile hInstance */
HINSTANCE hInstance = GetModuleHandle(NULL)
/* poi con questo qua sotto non dovresti vedere piu la finestra. */
ShowWindow(hInstance, SW_HIDE);
cout << " CIAO ";
system("pause");
}
Errore:
expected ; or ; before "ShowWindow"
cout undeclared
|
|