Funkce registru

Kdy použít registr

Registr Windows je vhodný pro ukládání malých objemů konfiguračních dat (nastavení, předvolby, stav uživatele). Zvažte alternativy pro jiné scénáře:

Scénář Recommendation
Nastavení aplikace (moderní aplikace) Upřednostněte ApplicationData.LocalSettings (UPW/WinUI) nebo soubor JSON/XML pro %APPDATA% desktopové aplikace. Ty se snadněji zálohují, migrují a ladí.
Velká data nebo strukturovaná data Místo ukládání velkých objektů blob do hodnot registru použijte soubor (JSON, SQLite atd.).
Konfigurace služby pro celý počítač HKEY_LOCAL_MACHINE Registr je vhodný – jedná se o standardní mechanismus pro služby Windows.
Předvolby pro jednotlivé uživatele (desktopové aplikace) HKEY_CURRENT_USER\Software\<Company>\<App> Registr je vhodný a konvenční.
Sdílený stav mezi procesy Zvažte pojmenovanou sdílenou paměť, pojmenované kanály nebo soubor – registr nemá žádné oznámení o změnách integrovaných do čtení hodnot. Použít RegNotifyChangeKeyValue pouze pro hrubé odstupňované oznámení.

Important

Osvědčené postupy zabezpečení: Otevírání klíčů registru s minimálními potřebnými přístupovými právy (např KEY_READKEY_ALL_ACCESSKEY_WRITEMAXIMUM_ALLOWED. Zápis pouze HKEY_LOCAL_MACHINE z procesů se zvýšenými oprávněními (správce). Vždy zkontrolujte návratové hodnoty z funkcí registru – vrátí se ERROR_SUCCESS k úspěchu a kód chyby Win32 při selhání (ne HRESULT).

Note

Běžné nástrahy – typy řetězců: Hodnoty řetězce registru (REG_SZ, REG_EXPAND_SZ) musí obsahovat ukončovací znak null v bajtovém počtu předaných RegSetValueEx. Při čtení řetězců s RegQueryValueEx nebo RegGetValue, vždy null-ukončení vyrovnávací paměti sami, pokud uložená hodnota nemusí zahrnovat ukončovací – některé software třetích stran zapisuje řetězce bez něj.

Níže jsou uvedené funkce registru.

Funkce Description
GetSystemRegistryQuota Načte aktuální velikost registru a maximální povolenou velikost registru v systému.
RegCloseKey Zavře popisovač zadaného klíče registru.
RegConnectRegistry Vytvoří připojení k předdefinovanému popisovači registru v jiném počítači.
RegCopyTree Zkopíruje zadaný klíč registru spolu s jeho hodnotami a podklíči do zadaného cílového klíče.
RegCreateKeyEx Vytvoří zadaný klíč registru.
RegCreateKeyTransacted Vytvoří zadaný klíč registru a přidruží ho k transakci.
RegDeleteKey Odstraní podklíč a jeho hodnoty.
RegDeleteKeyEx Odstraní podklíč a jeho hodnoty ze zadaného zobrazení registru specifického pro platformu.
RegDeleteKeyTransacted Odstraní podklíč a jeho hodnoty ze zadaného zobrazení registru specifického pro platformu jako transakce.
RegDeleteKeyValue Odebere zadanou hodnotu ze zadaného klíče registru a podklíče.
RegDeleteTree Odstraní podklíče a hodnoty zadaného klíče rekurzivně.
RegDeleteValue Odebere pojmenovanou hodnotu ze zadaného klíče registru.
RegDisablePredefinedCache Zakáže ukládání popisovačů do mezipaměti pro předdefinovaný popisovač registru pro HKEY_CURRENT_USER pro aktuální proces.
RegDisablePredefinedCacheEx Zakáže ukládání popisovačů do mezipaměti pro všechny předdefinované popisovače registru pro aktuální proces.
RegDisableReflectionKey Zakáže reflexi registru pro zadaný klíč.
RegEnableReflectionKey Povolí reflexi registru pro zadaný zakázaný klíč.
RegEnumKeyEx Vytvoří výčet podklíčů zadaného otevřeného klíče registru.
RegEnumValue Vytvoří výčet hodnot zadaného otevřeného klíče registru.
RegFlushKey Zapíše všechny atributy zadaného otevřeného klíče registru do registru.
RegGetKeySecurity Načte kopii popisovače zabezpečení, která chrání zadaný otevřený klíč registru.
RegGetValue Načte typ a data pro zadanou hodnotu registru.
RegLoadKey Vytvoří podklíč v rámci HKEY_USERS nebo HKEY_LOCAL_MACHINE a uloží registrační informace ze zadaného souboru do daného podklíče.
RegLoadMUIString Načte zadaný řetězec ze zadaného klíče a podklíče.
RegNotifyChangeKeyValue Upozorní volajícího na změny atributů nebo obsahu zadaného klíče registru.
RegOpenCurrentUser Načte popisovač klíče HKEY_CURRENT_USER pro uživatele, který aktuální vlákno zosobní.
RegOpenKeyEx Otevře zadaný klíč registru.
RegOpenKeyTransacted Otevře zadaný klíč registru a přidruží ho k transakci.
RegOpenUserClassesRoot Načte popisovač klíče HKEY_CLASSES_ROOT zadaného uživatele.
RegOverridePredefKey Mapuje předdefinovaný klíč registru na zadaný klíč registru.
RegQueryInfoKey Načte informace o zadaném klíči registru.
RegQueryMultipleValues Načte typ a data pro seznam názvů hodnot přidružených k otevřenému klíči registru.
RegQueryReflectionKey Určuje, zda je pro zadaný klíč zakázán nebo povolen odraz.
RegQueryValueEx Načte typ a data pro zadaný název hodnoty přidružený k otevřenému klíči registru.
RegRenameKey Změní název zadaného klíče registru.
RegReplaceKey Nahradí soubor záložní klíč registru a všechny jeho podklíče jiným souborem.
RegRestoreKey Načte informace registru v zadaném souboru a zkopíruje je přes zadaný klíč.
RegSaveKey Uloží zadaný klíč a všechny jeho podklíče a hodnoty do nového souboru.
RegSaveKeyEx Uloží zadaný klíč a všechny jeho podklíče a hodnoty do nového souboru. Můžete zadat formát uloženého klíče nebo podregistru.
RegSetKeyValue Nastaví data pro zadanou hodnotu v zadaném klíči registru a podklíči.
RegSetKeySecurity Nastaví zabezpečení otevřeného klíče registru.
RegSetValueEx Nastaví data a typ zadané hodnoty v klíči registru.
RegUnLoadKey Uvolní zadaný klíč registru a jeho podklíče z registru.

 

S registrem je možné použít následující funkce prostředí:

Následují funkce inicializačního souboru. Načítají informace ze souboru inicializace definované systémem nebo aplikací a kopírují informace. Tyto funkce jsou poskytovány pouze z důvodu kompatibility s 16bitovými verzemi Windows. Nové aplikace by měly používat registr.

Funkce Description
GetPrivateProfileInt Načte celé číslo přidružené ke klíči v zadané části inicializačního souboru.
GetPrivateProfileSection Načte všechny klíče a hodnoty pro zadaný oddíl inicializačního souboru.
GetPrivateProfileSectionNames Načte názvy všech oddílů v inicializačním souboru.
GetPrivateProfileString Načte řetězec ze zadaného oddílu v inicializačním souboru.
GetPrivateProfile – struktura Načte data přidružená ke klíči v zadané části inicializačního souboru.
GetProfileInt Načte celé číslo z klíče v zadané části souboru Win.ini.
GetProfileSection Načte všechny klíče a hodnoty pro zadaný oddíl souboru Win.ini.
GetProfileString Načte řetězec přidružený ke klíči v zadané části souboru Win.ini.
WritePrivateProfileSection Nahradí klíče a hodnoty zadaného oddílu v inicializačním souboru.
WritePrivateProfileString Zkopíruje řetězec do zadané části inicializačního souboru.
WritePrivateProfile – struktura Zkopíruje data do klíče v zadané části inicializačního souboru.
WriteProfileSection Nahradí obsah zadaného oddílu v souboru Win.ini zadanými klíči a hodnotami.
WriteProfileString Zkopíruje řetězec do zadané části souboru Win.ini.

 

Zastaralé funkce

Tyto funkce jsou k dispozici pouze z důvodu kompatibility s 16bitovými verzemi Windows: