Per brevità, sto usando una chiave radice falso. In pratica, sostituire Hive_Key
con HKEY_LOCAL_MACHINE
per le impostazioni predefinite del sistema o HKEY_CURRENT_USER
per le impostazioni per utente. È possibile che esista una di queste chiavi o entrambe. Se entrambi esistono, la chiave HKCU
ha la precedenza.
Per associare un'estensione a un tipo di file, è necessario impostare il valore predefinito della chiave di estensione (Hive_Key\Software\Classes\.ext
) con un tipo di file scelto, impostando il valore di chiave predefinito.
Il vero programma avviato, così come altri dettagli sul tipo di file, si trovano nel tipo di file. I tipi di file sono indicati da quello che viene definito come ProgID
(abbreviazione di "Identificatore programmatico", che è una versione più facilmente leggibile di un identificatore di classe). Le chiavi ProgID si trovano in Hive_Key\Software\Classes
e un valore di esempio per questa illustrazione potrebbe essere ext_auto_key
.
Il ProgID può avere un valore predefinito, che sarà la descrizione descrittiva del tipo di file in Esplora risorse (ad esempio, "Documento di Microsoft Word"). Spetta a te assicurarti di scegliere una descrizione che sia facilmente comprensibile per gli utenti.
Il ProgID può avere una sottochiave, DefaultIcon
, che è dove è memorizzata l'icona del tipo di file. Quel percorso dell'icona è il valore predefinito di quella chiave.
Il tasto ProgID può contenere una sottochiave, shell
, che conterrà le voci del menu di scelta rapida sui file e il programma richiamato da tale voce di menu di scelta rapida. Simile al valore predefinito del ProgID, il valore predefinito della chiave verb è il testo che verrà visualizzato nel menu di scelta rapida. Il valore predefinito di questa chiave shell
ha il nome della chiave verbo predefinito, che è il verbo richiamato quando l'utente fa doppio clic su un file.
Queste voci del menu di scelta rapida sono Verbs
. Per il nostro esempio, un verbo che apre il file con Blocco note è simile al seguente: Hive_Key\Software\Classes\ext_auto_file\shell\open\command
con valore predefinito notepad.exe %1
.
Qui è dove si inserisce il percorso del programma. Se il tuo programma si trova nel sistema PATH, come notepad.exe, non è necessario per specificare il percorso completo. Nel caso più probabile, dovrai specificare il percorso del tuo exe. A scopo di test, puoi semplicemente impostarlo come directory di build.
ti ha chiesto come controllare questa roba, e questo può essere fatto prima ispezionare il valore di default della chiave di estensione per ottenere il ProgID, quindi ispezionare il shell
sottochiave della chiave ProgID per ottenere verbo di default, quindi ispezionare \shell\verb\command
a avviare il percorso del programma.
Potrebbe essere illuminante aprire regedit.exe
e sfogliare quelle chiavi di registro per altri tipi di file per avere un'idea migliore di come tutto funziona.
Inoltre, quanto sopra è tutto valido se l'estensione particolare non è sotto il controllo di un programma impostato come predefinito (Programmi predefiniti) nel Pannello di controllo. È possibile controllare questo stato controllando l'esistenza della chiave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice
. In tal caso, sarà necessario revocare il controllo Programmi predefiniti prima che le personalizzazioni diventino effettive. Questo può essere fatto eliminando quella sottochiave UserChoice
.
Regedit mi fa un po 'ridere. Grazie per l'aiuto! – Cyclone