====== 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í ===== * **Přiřazení programu ke spuštění při dvojkliku na .log soubor:** HKCR\.log (výchozí) = "txtfile" HKCR\txtfile\shell\open\command (výchozí) = "C:\Windows\notepad.exe %1" * **Registrace vlastního typu souboru:** 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