Questa chiave principale è di fatto un alias del ramo Software\Classes di Hkey_Local_Machine: in altre parole esiste come riferimento alla chiave suddetta e ogni intervento su questa Hkey ha un immediato riflesso sulla sottochiave in Hkey_Local_Machine (e viceversa). Contiene un complesso insieme di informazioni, intese principalmente a definire il rapporto tra le estensioni dei file e le modalità con cui Windows gestisce l’accesso a questi ultimi attraverso Explorer. Questa chiave raccoglie inoltre le Class Identification, stringhe atte a identificare gli Ole. Quando l’utente effettua un doppio clic su un file o quando lo seleziona con il tasto destro per accedere al relativo menù contestuale, Windows si avvale delle informazioni raccolte in questo ramo per decidere quale sia l’applicazione che è necessario lanciare per accedere al contenuto del file, oppure per determinare quali siano le voci del menù stesso. Questo ramo del Registry viene modificato ogni volta che un’applicazione necessita di assegnare delle estensioni al proprio eseguibile. Accade non di rado che un determinato tipo di file venga “conteso” per esempio tra differenti editor di testo, o programmi per visualizzare le immagini. Eclatante il caso di Internet Explorer, che litiga con Netscape Communicator per garantirsi la possibilità di visualizzare i file con estensione .Html, .Htm e altre. Ciascuna estensione è rappresentata da una chiave omonima, genitrice della chiave Shell che a propria volta ospita ulteriori sottochiavi atte a descrivere nel dettaglio come il sistema dovrà trattare un file di questo tipo. Il nome degli elementi contenuti all’interno della chiave Shell viene letto da Windows e utilizzato come etichetta per la voce del menù contestuale. La prima di esse, che compare in grassetto nel menù, è utilizzata dal sistema per stabilire quale applicazione lanciare quando si effettua un doppio clic su un file: nel caso di un documento di testo si tratterà per esempio di Blocco Note (Notepad.Exe).
Le successive vanno appunto a comporre la lista delle voci nel menù. Ciascuno degli elementi all’interno della chiave Shell contiene a propria volta una chiave denominata Command, il cui value predefinito è il percorso completo dell’eseguibile da lanciare. Alcune voci del menù contestuale sono standard: Apri o Esplora non sono descritte da chiavi omonime, bensì da nomi convenzionali, nella fattispecie Open ed Explore. Anche le cartelle sono considerate alla stregua dei file, ed è presente una chiave denominata Folder invece della classica estensione. Esplorando questo ramo del Registry si può facilmente individuare una serie di voci il cui nome non rimanda direttamente a una estensione. In questo caso, una breve ricerca può svelare il mistero: tali chiavi sono presenti nel Value predefinito di una qualche autentica estensione; questo sistema è utilizzato da alcune applicazioni per creare delle proprie tipologie di dati che definiscono menù particolari, con nomi arbitrari, che sono in seguito collegate alle chiavi classiche, denominate in funzione dell’estensione effettiva del file cui si riferiscono.
Per esempio, un’ipotetica chiave “file_di_Chip” può contenere la sottochiave Shell, e più in basso Open, Collegati al sito o quant’altro, a propria volta genitrici di chiavi Command che rimandano a una particolare applicazione. Naturalmente non esisterà mai un file con quella estensione. Ma inserendo file_di_Chip all’interno del Value predefinito di un’estensione autentica, per esempio della chiave “.chip”, avremo definito un nuovo tipo di file e una serie di regole per accedervi.
Se volete farvi un idea più chiara potete lanciare Regedit.Exe ed entrare in Hkey_Classes_Root. Prestate particolare attenzione alle modifiche che volete apportare, dato che ognuna di esse ha esito istantaneo e può portare a risultati catastrofici se eseguita erroneamente. A questo punto create una chiave (menù Modifica/Nuovo/Chiave) di nome “.chip”. Evidenziatela e fate un doppio clic sul Value predefinito presente nella parte destra della finestra, inserite la dicitura “file_di_Chip” e premete Invio. Ora selezionate nuovamente Hkey_Classes_Root, create una seconda chiave di nome “file_di_Chip”, selezionatela nella parte sinistra della finestra e create una sottochiave di nome “shell”, dentro quest’ultima una seconda di nome “Apri file Chip” e all’interno inseritene ancora una di nome “command”. A questo punto effettuate un doppio clic sul Value predefinito dell’ultima chiave creata e inserite “C:\Windows\Notepad.Exe “%1” ”, modificando opportunamente il nome della cartella di sistema compatibilmente alla vostra installazione. La stringa “%1” è necessaria per far sì che il nome del file che si sta aprendo sia comunicato a Notepad. Premete Invio e provate a rinominare un qualsiasi file di testo, modificandone l’estensione in .chip: selezionandolo con il tasto destro per verificare che la prima voce del menù corrisponda a quella impostata. Se invece opterete per un doppio clic, Notepad visualizzerà il testo contenuto del file. Per riportare il sistema alle condizioni originali è sufficiente rimuovere le chiavi “.chip” e “file_di_Chip” da Hkey_Classes_Root. Un altro dato interessante riguarda la chiave “*” (asterisco): essa definisce delle voci del menù contestuale valide per tutti i file, indipendentemente dall’estensione. Spesso viene ampliata da installazioni di numerosi programmi (come WinZip o WinRar), e pertanto può essere utile ripulirla, con un occhio alle avvertenze già date. Un’altra chiave dal contenuto perlomeno impressionante è denominata Clsid. Aprendola, si troverà una lunghissima lista di sottochiavi, ciascuna delle quali è un Class Identification, nel formato {aabbccdd-eeff-gghh-iijj-kkllmmnnoopp}. Ogni paia di lettere corrisponde a un numero in formato esadecimale di 1 byte. Aprendo una di queste chiavi apparirà una descrizione dell’oggetto associato al numero in questione. Dal punto di vista dell’utente questi dati sono una scatola nera: può essere utile sapere che talvolta alcune chiavi corrispondenti a particolari estensioni contengono dei rimandi ai Clsid, per fini di integrazione con gli Ole, ma a meno di non conoscere approfonditamente l’argomento è bene evitare di intervenire sui contenuti della chiave.