Il menu contestuale è forse l'elemento dell'interfaccia grafica più utilizzato in ambiente Windows. Pensiamoci: in qualunque modo si voglia interagire con un file (a prescindere dal formato), il menu contestuale ci offre svariate possibilità per farlo. Da qui deriva che personalizzare il menu contestuale può migliorare di molto la nostra esperienza d'uso.

In questa guida scopriremo insieme come inserire dei sotto-menu nel menu contestuale.

med

A titolo di esempio, per spiegare la procedura, andrò a creare un sotto-menu che comparirà esclusivamente nello sfondo del Desktop. Al suo interno avrà due voci: una lancerà il clean manager per la pulizia disco, l'altra avvierà Photoshop.

Preparativi

Tutte le operazioni verranno effettuate tramite l'editor del registro di sistema. Le uniche altre cose di cui avremo bisogno saranno:

  • Le icone che vorremo associare alle voci del menu e del sotto-menu
  • I percorsi degli eseguibili dei programmi (se necessario ci informeremo sui parametri associati alle righe di comando degli eseguibili)

Procedura

Opereremo in due parti del registro: quella specifica dell'oggetto il cui menu andremo a modificare e un'altra parte in cui inseriremo i comandi da associare al menu, ossia il CommandStore.

Inserire le voci nel CommandStore

Apriamo l'editor del registro di sistema premendo la combinazione di tasti Win+R, scrivendo "regedit" e dando INVIO.

med

Ora rechiamoci alla seguente chiave di registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell

Clicchiamo con il tasto destro su "shell", spostiamoci sul sotto-menu "Nuovo" e selezioniamo "Chiave".

Attribuiamo alla chiave un nome idoneo al compito che dovrà eseguire, ad esempio, in questo caso, "Pulizia disco".

med

Appendice 1: consiglio di aggiungere il CommandStore ai preferiti del registro di sistema, così da poterlo ritrovare immediatamente qualora volessimo aggiungere altre voci al menu. Per farlo è sufficiente selezionare la chiave "CommandStore", spostarsi sulla voce "Preferiti" nella barra dei menu in alto, selezionare "Aggiungi ai preferiti…" e premere OK.

Appendice 2: per ritrovare più velocemente le chiavi di registro da noi aggiunte nel CommandStore è possibile nominarle con un carattere speciale prima del nome. Ad esempio "Photoshop" diventerà "!!!Photoshop". Tutto questo a patto poi di richiamare la chiave di registro includendo il carattere speciale utilizzato.

Attribuire il nome alla voce del menu

Selezioniamo la chiave appena creata e spostiamoci nel pannello di destra. Ci sarà un "Valore stringa" già inserito:

med

Clicchiamo due volte su di esso e inseriamo il nome da attribuire alla voce del menu, ad esempio "Pulizia disco". Ciò che scriveremo qui sarà quello che comparirà nel menu.

med

Diamo quindi OK.

Appendice 1: è possibile modificare il valore stringa predefinito inserendo il carattere jolly "&" per lanciare più rapidamente il comando associato. Ad esempio, se al posto di "Pulizia disco" inseriremo "&Pulizia disco" oppure "Puli&zia disco", una volta aperto il sotto-menu potremo lanciare il comando premendo rispettivamente P oppure Z da tastiera.

Icona

Clicchiamo nuovamente con il tasto destro in uno spazio vuoto, spostiamoci su "Nuovo" e selezioniamo "Valore stringa": attribuiamogli il nome "Icon".

A questo punto come valore dovremo inserire il percorso dell'icona che vedremo comparire accanto alla voce del sotto-menu.

Ad esempio per "Pulizia disco" posso utilizzare l'icona stessa dell'eseguibile inserendo:

"C:\Windows\System32\cleanmgr.exe"

In alternativa è possibile specificare un'icona personalizzata, ad esempio:

"D:\Immagini\Icone\Operating System\System\Machemicals\First Aid.ico"

Nel secondo caso non sarà necessario aggiungere il numero dell'icona all'interno dell'eseguibile, ma ricordiamoci che, qualora dovessimo spostare, rinominare o cancellare il file .ico, sarà necessario modificare anche il "Valore stringa".

In entrambi i casi ricordiamoci di racchiudere il percorso tra virgolette ("…"), in quanto altrimenti Windows interromperebbe l'elaborazione al primo spazio nel percorso.

Appendice 1: volendo potremmo anche fare in modo che, accanto alla nostra icona, comparisse lo "scudo" del celeberrimo UAC di Windows, fermo restando che sarebbe solo un vezzo estetico e un promemoria che potremmo attribuire a comandi più invasivi. Per farlo dovremmo semplicemente cliccare con il tasto destro, spostarci su "Nuovo", quindi selezionare "Valore stringa" e rinominarlo "HasLUAShield" lasciando vuoto il valore.

med

Inserire il comando da eseguire

A questo punto abbiamo creato la voce del menu, ma dobbiamo ancora associarvi il comando da eseguire. Per farlo clicchiamo con il tasto destro sulla voce creata, ad esempio "Pulizia disco", spostiamoci su "Nuovo" e selezioniamo "Chiave". Chiamiamola quindi "command".

Nel pannello di destra clicchiamo due volte sul "Valore stringa" già presente e, come "Dati valore", inseriamo il comando che vorremo eseguire dal menu contestuale.

Ad esempio:

cleanmgr.exe /N

Per eseguire i file inseriti nella cartella "C:\Windows\System32" non è necessario specificare l'intero percorso. "/N" è uno dei parametri associabili a "cleanmgr.exe".

Se invece volessimo eseguire semplicemente un programma, ad esempio Photoshop, dovremmo inserire tutto il percorso dell'eseguibile, ad esempio:

"C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Photoshop.exe"

Ricordandoci di utilizzare le virgolette perché il percorso include degli spazi.

A questo punto la voce nel CommandStore è pronta. Non dovremo fare altro che ripetere le operazioni per tutte le voci che vorremo creare nel menu.

Creare il menu contestuale

Spostiamoci quindi nella chiave di registro relativa al menu contestuale da modificare. Più avanti ne elencherò alcune rilevanti, ma per il momento limitiamoci a vedere la procedura.

Raggiungiamo la chiave

HKEY_CLASSES_ROOT\DesktopBackground\Shell

Vedremo che sono già presenti delle sotto-chiavi che si riferiscono alle voci "Risoluzione dello schermo" e "Personalizza".

Clicchiamo con il tasto destro su "Shell", spostiamoci su "Nuovo" e selezioniamo "Chiave". Chiamiamola con un nome di riferimento valido solo all'interno del registro (non è ciò che leggeremo nel menu contestuale).

Nome del sotto-menu

Spostiamoci quindi nel pannello di destra, apriamo il menu contestuale, spostiamoci su "Nuovo" e quindi selezioniamo "Valore stringa": rinominiamolo "MUIVerb", diamo OK, facciamoci doppio click e, come "Dati valore", inseriamo il nome che attribuiremo al nostro sotto-menu.

In questo caso, il nome del mio sotto-menu,  e quindi del valore "MUIVerb", sarà "Turbolab.it!".

Già da ora vedremo una nuova voce spuntare nel menu contestuale che stiamo modificando.

Icona del sotto-menu

Creiamo un altro "Valore stringa" aprendo il menu contestuale, spostandoci su "Nuovo" e selezionando "Valore stringa": rinominiamolo "Icon".

Come prima facciamo doppio click sul valore appena creato e inseriamo il percorso dell'icona principale del menu, sia essa all'interno di un eseguibile .exe o disponibile come file .ico.

Io ad esempio inserirò

"D:\Downloads\favicon.ico"

Inserire l'icona è facoltativo.

med

Appendice 1: anche qui è possibile inserire il valore stringa "HasLUAShield".

Posizione del sotto-menu

È possibile specificare in quale posizione del menu contestuale vorremmo che apparisse il nostro sotto-menu. Di default il menu verrà inserito a metà del menu contestuale.

Purtroppo le variabili sono solo tre e il risultato finale è influenzato dagli altri elementi presenti nel menu, siano essi default di Windows o aggiunti da programmi di terze parti.

Creiamo un nuovo "Valore stringa" e rinominiamolo "Position". Avremo tre possibili scelte da inserire come dati valore: "Top", "Middle" o "Bottom", rispettivamente per alto, mezzo o basso.

med

Top = in alto

med

Middle = in mezzo

med

Bottom = in basso

È facoltativo anche specificare la posizione del menu.

Aggiungere le voci del sotto-menu

Possiamo finalmente aggiungere al sotto-menu le voci create in precedenza; nel caso di esempio esse saranno "Pulizia disco" e "Photoshop".

Apriamo ancora una volta il menu contestuale, spostiamoci su "Nuovo" e selezioniamo "Valore stringa". Chiamiamolo "SubCommands".

Clicchiamoci sopra due volte e, come "Dati valore", dovremo inserire i nomi delle chiavi di registro create sotto la chiave "CommandStore\shell", separati da un punto e virgola ";".

In questo caso inserirò la seguente stringa di testo:

Pulizia disco;Photoshop

Poiché questi sono i nomi che ho attribuito precedentemente alle chiavi. Non è necessario utilizzare le virgolette anche se i nomi contengono degli spazi.

Ecco quindi che avremo creato il nostro sotto-menu contestuale personalizzato!

med

Appendice 1: possiamo anche inserire dei separatori fra le voci del menu inserendo ";|;" fra il nome di una chiave e l'altro. Il simbolo | si ottiene con la combinazione MAIUSC+\ dove \ è il tasto della tastiera posizionato nell'angolo sotto ESC.

"Pulizia disco;Photoshop" diventerà quindi "Pulizia disco;|;Photoshop".

med

Suggerimenti di uso

Modificare il menu contestuale ci offre infinite possibilità di personalizzazione del Sistema Operativo. Ecco alcuni scenari di utilizzo con modifiche che ho apportato al mio Windows 7, foto e sotto relativa chiave di registro in cui inserire il sotto-menu.

med

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

med

HKEY_CLASSES_ROOT\Drive\shell

med

Per tutti gli oggetti di sistema, ovvero file e cartelle:

HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\

Il menu contestuale che appare cliccando con il tasto destro sulle cartelle si trova sotto due chiavi:

HKEY_CLASSES_ROOT\Directory\shell

HKEY_CLASSES_ROOT\Folder\shell

Per qualsiasi tipo di file ma non le cartelle (anche detto file *.*)

HKEY_CLASSES_ROOT\*\shell\

Appendice 1: suggerisco, una volta creato il nostro menu personalizzato, di esportare tutte le chiavi di registro create in modo da poterlo ripristinare dopo una formattazione o, eventualmente, inserirlo in un altro OS.

Per fare ciò selezionate la chiave creata, cliccateci sopra con il tasto destro e selezionate "Esporta", quindi salvatela in un posto sicuro.

Potete anche unire tutte le chiavi esportate in un solo file .reg aprendone una con Blocco note e copiandovi il contenuto delle altre (tutto ad eccezione di "Windows Registry Editor Version 5.00" che deve essere presente una sola volta come prima stringa di testo). Alla fine vi ritroverete con un file simile a questo:

med