Il sistema operativo Windows presenta un’interfaccia utente a finestre, il desktop è quella principale che l’utilizzatore visualizza per prima quando entra nel suo spazio. All’avvio di Windows vengono create una serie di finestre, visibili e non, con le quali l’utente interagisce. Un normale desktop presenta una serie di icone ( shortcut ) e cartelle ( folder ), creati dall’utente stesso. Tutti gli oggetti creati dall’utilizzatore risiedono, su Windows 7, in una cartella all’interno di quella specifica dell’utente. Gli shortcut che appaiono per default ( Computer, Rete, etc…) non sono visibili nella cartella dell’utente, infatti Explorer sa che il desktop è un oggetto speciale a monte di tutta la gerarchia delle cartelle ed al suo interno inserisce ( se scelto dall’utente nelle impostazioni del desktop ) i collegamenti standard ( file .lnk ). Come tutti sanno, basta fare click con il pulsante destro del mouse sul desktop per poterlo personalizzare, ma queste informazioni le prendiamo come acquisite ed andiamo a scoprire le componenti del desktop di Windows, in questo caso particolare dell’ultimo nato “Windows 7”.
Se prendiamo lo strumento classico degli sviluppatori su piattaforma Windows, il famoso Spy++, possiamo accorgerci che il desktop è formato da tutta una serie di finestre:
Tutte le finestre del sistema operativo sono figlie di una desktop che copre tutta l’area dello schermo. La classe di questa finestra è la stringa “#32769” il cui valore è un atom, ovvero l’identificatore di una stringa di sistema che contiene appunto la parola “Desktop”.
Questa finestra non è creata da Explorer, bensì da un modulo chiamato msgsrv32, tutte le finestre top-level create da Windows, comprese quelle dei singoli applicativi, sono figlie di questa desktop.
Dal punto di vista della programmazione, la finestra desktop viene identificata dalla sigla HWND_DESKTOP ed il suo handle è restituito dalla funzione GetDesktopWindow(). Il desktop però non è la finestra che contiene le icone, come abbiamo visto in precedenza, si tratta di una finestra che non ha compiti particolari se non quello di costituire la radice dell’albero di finestre della shell di Windows ( vedi immagine sopra ).
Conoscere questi aspetti di Windows è molto importante per creare quelle applicazioni che consentono all’utente di utilizzare solo un programma, senza permettergli di utilizzare il sistema operativo, ad esempio un terminale cassa con tasti grandi per il touch screen. Per fare questo occorre nascondere il desktop e rendere inattive alcune combinazioni di tasti di sistema come ALT+TAB oppure il tasto Windows che mostrerebbero il menù di avvio. Per nascondere la taskbar basta ottenerne l’handle con la funzione FindWindow ed inserendo la classe Shell_TrayWnd, come avevamo scoperto attraverso Spy++. Per disabilitare il desktop si possono percorrere varie strade, la più semplice ed immediata è creare una finestra invisibile al di sopra del desktop, senza barra del titolo, con lo stile WS_EX_TOOLWINDOW e WS_EX_TRANSPARENT.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→