HKCR (HKEY_CLASSES_ROOT)
HKCR je zkratka pro HKEY_CLASSES_ROOT, což je jeden ze základních kořenových klíčů (tzv. *hive*) v registru operačního systému Microsoft Windows.
Co je HKCR?
Registrační klíč HKEY_CLASSES_ROOT slouží k ukládání informací o:
Asociacích souborových přípon (např. `.txt`, `.docx`)
Typu dokumentu (tzv. ProgID – Programmatic Identifier, např. `txtfile`, `Word.Document.12`)
Třídách COM objektů (Component Object Model)
Kontextových nabídkách pro soubory a složky
Ikonech a popisech typů souborů
Interní struktura
Technicky vzato HKCR není samostatným fyzickým klíčem v registru. Jedná se o virtuální pohled (alias) na data uložená v jiných částech registru:
Prioritně ukazuje na HKEY_CURRENT_USER\Software\Classes
Pokud daný záznam v uživatelském profilu neexistuje, přistupuje k HKEY_LOCAL_MACHINE\Software\Classes
Tímto způsobem Windows umožňuje uživatelům přepsat systémové asociace souborů svými vlastními nastaveními.
Příklady použití
HKCR\.log
(výchozí) = "txtfile"
HKCR\txtfile\shell\open\command
(výchozí) = "C:\Windows\notepad.exe %1"
HKCR\.myext
(výchozí) = "MyApp.Document"
HKCR\MyApp.Document
(výchozí) = "Můj vlastní dokument"
HKCR\MyApp.Document\DefaultIcon
(výchozí) = "C:\Program Files\MyApp\icon.ico"
Důležité poznámky
Úprava registru může vést k nestabilitě systému – vždy je doporučeno zálohovat registr před zásahem.
Na systémech s více uživateli se změny v HKCR projeví pouze pro aktuálního uživatele, pokud nejsou provedeny v HKLM\Software\Classes.
V aplikacích je často vhodnější používat assoc a ftype příkazy v příkazovém řádku nebo rozhraní API Windows (např. `SHOpenWithDialog`) místo přímé manipulace s registrem.
Související klíče v registru
HKEY_CURRENT_USER (HKCU) – nastavení aktuálního uživatele
HKEY_LOCAL_MACHINE (HKLM) – globální nastavení celého počítače
HKEY_CLASSES_ROOT (HKCR) – kombinace HKCU a HKLM pro asociace souborů a COM třídy