View Full Version : O.S. domanda
AsdrubadeO_o
19-01-2007, 09:22
ciao a tutti (prima di tutto)
Allora ho in mente un progetto in mente e ho bisogno di chiedervi una cosa...
Con Windows c'è qualke modo per far si che quando accendo il pc parta mi tiri su il suo "kernel" ma nn mi lanci l'explorer? (explorer = l'interfaccia utente .. non internet explorer!)
praticamente mi interessa avere tutte le "potenzialità dell'interfaccia grafica sviluppate da windows ma nn voglio ke mi carichi la sua interfaccia grafica.
mi sono spiegato?
ah! .. se è impossibile la cosa (ma credo sia fattibile) mi sapete consigliare un O.S. non Gnu?
aspetto vostre risposte ..
grazie x l'aiuto!
il Necromante.
Allora ho in mente un progetto in mente e ho bisogno di chiedervi una cosa...
Con Windows c'è qualke modo per far si che quando accendo il pc parta mi tiri su il suo "kernel" ma nn mi lanci l'explorer? (explorer = l'interfaccia utente .. non internet explorer!)
praticamente mi interessa avere tutte le "potenzialità dell'interfaccia grafica sviluppate da windows ma nn voglio ke mi carichi la sua interfaccia grafica.
mi sono spiegato?Explorer.exe non fa parte del "kernel" di Windows. È una "normale" applicazione, con la differenza che viene lanciato di default quando si fa il logon.
Apri il registro di Windows con 'regedit', vai nella chiave (nota: devi essere come utente Amministratore per modificare questa chiave):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Lì sotto c'è un valore denominato "Shell", che contiene la stringa "Explorer.exe". Metti il nome di un tuo eseguibile .... al logon, il sistema caricherà la tua applicazione invece di explorer. ;) ;)
Marco Giunio Silano
19-01-2007, 10:48
Explorer.exe non fa parte del "kernel" di Windows. È una "normale" applicazione, con la differenza che viene lanciato di default quando si fa il logon.
Apri il registro di Windows con 'regedit', vai nella chiave (nota: devi essere come utente Amministratore per modificare questa chiave):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Lì sotto c'è un valore denominato "Shell", che contiene la stringa "Explorer.exe". Metti il nome di un tuo eseguibile .... al logon, il sistema caricherà la tua applicazione invece di explorer. ;) ;)
:ave:
AsdrubadeO_o
19-01-2007, 12:25
andbin mille grazie! :D
provo subito la cosa!
mentre che ci sono ti pongo un altro quesito ...
io con quelo windows fittizio invece di caricare "explorer.exe" carico il mio programma.
questo programma ha un'implementazione grafica che fà da "HumanInterface" e dietro le quindi mi gestisce un mio Hardware(o meglio chiacchiera con sto HW) .
dici che ci sono contro indicazioni x quel che sto pensando di fare?
hai da consigliarmi altro?
100000000 grazie!
il Necromante.
WhiteWolf42
16-02-2007, 10:37
Explorer.exe non fa parte del "kernel" di Windows. È una "normale" applicazione, con la differenza che viene lanciato di default quando si fa il logon.
Apri il registro di Windows con 'regedit', vai nella chiave (nota: devi essere come utente Amministratore per modificare questa chiave):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Lì sotto c'è un valore denominato "Shell", che contiene la stringa "Explorer.exe". Metti il nome di un tuo eseguibile .... al logon, il sistema caricherà la tua applicazione invece di explorer. ;) ;)
quante ne sai !!! grazie mille !!!
e (giusto per curiosità mia) come si fa per settare la "desktop window"? per intenderci, GetDesktopWindow (http://msdn2.microsoft.com/en-us/library/ms633504.aspx) a questo punto deve ritornare la finestra creata dall'eseguibile sostitutivo; va registrata in qualche modo?
e (giusto per curiosità mia) come si fa per settare la "desktop window"? per intenderci, GetDesktopWindow (http://msdn2.microsoft.com/en-us/library/ms633504.aspx) a questo punto deve ritornare la finestra creata dall'eseguibile sostitutivo; va registrata in qualche modo?Oh ... questa è una gran bella domanda! In effetti non ci ho mai pensato. Ho voluto investigare con il tool Spy++ (vedere <qui> (http://img157.imageshack.us/my.php?image=desktopwindowka8.gif) uno screenshot che ho fatto). La finestra del desktop (il cui handle è ritornato da GetDesktopWindow) risulta di proprietà del processo CSRSS e non di Explorer.
Quindi la finestra del desktop c'è sempre in ogni caso?? O deduco male io?
a dire il vero a me risulta che la finestra del desktop appartenga a explorer.exe, mentre quella che appartiene a csrss.exe è semplicemente un'altra finestra a tutto schermo che sta in ogni desktop dietro quella di explorer ^^
di conseguenza quando winlogon.exe lancia l'eseguibile della GUI, tale eseguibile si ritrova in un desktop nuovo di zecca con una finestrona a tutto schermo di csrss.exe sopra la quale deve creare il "desktop" inteso come icone & barra del menu avvio.
però a pensarci bene toccherebbe vedere quale delle due finestre restituisce effettivamente GetDesktopWindow... in effetti mi sa che restituisce quella di CSRSS (avrebbe anche più senso).
però a pensarci bene toccherebbe vedere quale delle due finestre restituisce effettivamente GetDesktopWindow... in effetti mi sa che restituisce quella di CSRSS (avrebbe anche più senso).Te lo dico subito proprio perché ho fatto la prova. Se hai visto lo screen-shot che ho linkato, vedi che il desktop ha handle 0001000A. Ho fatto un banale programmino che stampa l'handle ritornato da GetDesktopWindow ed è .... proprio quel handle.
Explorer crea semplicemente una finestra popup, di classe "Progman", grande come lo schermo e che ha come parent il desktop. Dentro questa finestra crea un'altra finestra e infine dentro quest'ultima crea una ListView che è poi quella che contiene le icone del desktop.
Questo è quanto ho trovato.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.