Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í:
- AssocCreate
- AssocQueryKey
- AssocQueryString
- AssocQueryStringByKey
- SHCopyKey
- SHDeleteEmptyKey
- SHDeleteKey
- SHDeleteValue
- SHEnumKeyEx
- SHEnumValue
- SHGetValue
- SHQueryInfoKey
- SHQueryValueEx
- SHRegCloseUSKey
- SHRegCreateUSKey
- SHRegDeleteEmptyUSKey
- SHRegDeleteUSValue
- SHRegDuplicateHKey
- ShRegenumusKey
- SHRegEnumUSValue
- SHRegGetBoolUSValue
- SHRegGetIntW
- SHRegGetPath
- SHRegGetUSValue
- SHRegOpenUSKey
- SHRegQueryInfoUSKey
- SHRegQueryUSValue
- SHRegSetPath
- SHRegSetUSValue
- SHRegWriteUSValue
- SHSetValue
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: