Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När registret ska användas
Det Windows registret är lämpligt för att lagra små mängder konfigurationsdata (inställningar, inställningar, tillstånd per användare). Överväg alternativ för andra scenarier:
| Scenario | Recommendation |
|---|---|
| Programinställningar (moderna appar) | Föredrar ApplicationData.LocalSettings (UWP/WinUI) eller en JSON/XML-fil i %APPDATA% för skrivbordsappar. Dessa är enklare att säkerhetskopiera, migrera och felsöka. |
| Stora data eller strukturerade data | Använd en fil (JSON, SQLite osv.) i stället för att lagra stora blobar i registervärden. |
| Datoromfattande tjänstkonfiguration | Register under HKEY_LOCAL_MACHINE är lämpligt – det här är standardmekanismen för Windows tjänster. |
| Inställningar per användare (skrivbordsappar) | Registret under HKEY_CURRENT_USER\Software\<Company>\<App> är lämpligt och konventionellt. |
| Delat tillstånd mellan processer | Överväg att namnge delat minne, namngivna pipes eller en fil – registret har inget ändringsmeddelande inbyggt i värdeläsningar. Använd Endast RegNotifyChangeKeyValue för grova meddelanden. |
Important
Metodtips för säkerhet: Öppna registernycklar med minsta möjliga åtkomstbehörighet (t.ex. KEY_READ eller KEY_WRITE) – undvik att använda KEY_ALL_ACCESS eller MAXIMUM_ALLOWED. Skriv till HKEY_LOCAL_MACHINE endast från förhöjda processer (administratör). Kontrollera alltid returvärden från registerfunktioner – de returnerar ERROR_SUCCESS vid lyckat resultat och en Win32-felkod vid fel (inte HRESULT).
Note
Vanliga fallgropar – strängtyper: Registersträngsvärden (REG_SZ, REG_EXPAND_SZ) måste innehålla null-avslutet i antalet byte som skickas till RegSetValueEx. När du läser strängar med RegQueryValueEx eller RegGetValue, null-avsluta alltid bufferten själv om det lagrade värdet kanske inte innehåller terminatorn – vissa program från tredje part skriver strängar utan den.
Följande är registerfunktionerna.
| Funktion | Beskrivning |
|---|---|
| GetSystemRegistryQuota | Hämtar den aktuella storleken på registret och den maximala storlek som registret tillåts uppnå i systemet. |
| RegCloseKey | Stänger en referens till den angivna registernyckeln. |
| RegConnectRegistry | Upprättar en anslutning till en fördefinierad registerreferens på en annan dator. |
| RegCopyTree | Kopierar den angivna registernyckeln, tillsammans med dess värden och undernycklar, till den angivna målnyckeln. |
| RegCreateKeyEx | Skapar den angivna registernyckeln. |
| RegCreateKeyTransacted | Skapar den angivna registernyckeln och associerar den med en transaktion. |
| RegDeleteKey | Tar bort en undernyckel och dess värden. |
| RegDeleteKeyEx | Tar bort en undernyckel och dess värden från den angivna plattformsspecifika vyn av registret. |
| RegDeleteKeyTransacted | Tar bort en undernyckel och dess värden från den angivna plattformsspecifika vyn av registret som en transaktion. |
| RegDeleteKeyValue | Tar bort det angivna värdet från den angivna registernyckeln och undernyckeln. |
| RegDeleteTree | Tar bort undernycklarna och värdena för den angivna nyckeln rekursivt. |
| RegDeleteValue | Tar bort ett namngivet värde från den angivna registernyckeln. |
| RegDisablePredefinedCache | Inaktiverar hantering av cachelagring för den fördefinierade registerreferensen för HKEY_CURRENT_USER för den aktuella processen. |
| RegDisablePredefinedCacheEx | Inaktiverar hantering av cachelagring för alla fördefinierade registerreferenser för den aktuella processen. |
| RegDisableReflectionKey | Inaktiverar registerreflektion för den angivna nyckeln. |
| RegEnableReflectionKey | Aktiverar registerreflektion för den angivna inaktiverade nyckeln. |
| RegEnumKeyEx | Räknar upp undernycklarna för den angivna öppna registernyckeln. |
| RegEnumValue | Räknar upp värdena för den angivna öppna registernyckeln. |
| RegFlushKey | Skriver alla attribut för den angivna öppna registernyckeln till registret. |
| RegGetKeySecurity | Hämtar en kopia av säkerhetsbeskrivningen som skyddar den angivna öppna registernyckeln. |
| RegGetValue | Hämtar typ och data för det angivna registervärdet. |
| RegLoadKey | Skapar en undernyckel under HKEY_USERS eller HKEY_LOCAL_MACHINE och lagrar registreringsinformation från en angiven fil i undernyckeln. |
| RegLoadMUIString | Läser in den angivna strängen från den angivna nyckeln och undernyckeln. |
| RegNotifyChangeKeyValue | Meddelar anroparen om ändringar i attributen eller innehållet i en angiven registernyckel. |
| RegOpenCurrentUser | Hämtar ett handtag till HKEY_CURRENT_USER nyckel för användaren som den aktuella tråden personifierar. |
| RegOpenKeyEx | Öppnar den angivna registernyckeln. |
| RegOpenKeyTransacted | Öppnar den angivna registernyckeln och associerar den med en transaktion. |
| RegOpenUserClassesRoot | Hämtar ett handtag till den HKEY_CLASSES_ROOT nyckeln för den angivna användaren. |
| RegOverridePredefKey | Mappar en fördefinierad registernyckel till en angiven registernyckel. |
| RegQueryInfoKey | Hämtar information om den angivna registernyckeln. |
| RegQueryMultipleValues | Hämtar typen och data för en lista med värdenamn som är associerade med en öppen registernyckel. |
| RegQueryReflectionKey | Avgör om reflektion har inaktiverats eller aktiverats för den angivna nyckeln. |
| RegQueryValueEx | Hämtar typen och data för ett angivet värdenamn som är associerat med en öppen registernyckel. |
| RegRenameKey | Ändrar namnet på den angivna registernyckeln. |
| RegReplaceKey | Ersätter filen som säkerhetskopierar en registernyckel och alla dess undernycklar med en annan fil. |
| RegRestoreKey | Läser registerinformationen i en angiven fil och kopierar den över den angivna nyckeln. |
| RegSaveKey | Sparar den angivna nyckeln och alla dess undernycklar och värden i en ny fil. |
| RegSaveKeyEx | Sparar den angivna nyckeln och alla dess undernycklar och värden i en ny fil. Du kan ange formatet för den sparade nyckeln eller hive. |
| RegSetKeyValue | Anger data för det angivna värdet i den angivna registernyckeln och undernyckeln. |
| RegSetKeySecurity | Anger säkerheten för en öppen registernyckel. |
| RegSetValueEx | Anger data och typ av ett angivet värde under en registernyckel. |
| RegUnLoadKey | Tar bort den angivna registernyckeln och dess undernycklar från registret. |
Följande gränssnittsfunktioner kan användas med registret:
- AssocSkapa
- 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
Följande är funktionerna för initieringsfil. De hämtar information från och kopierar information till en system- eller programdefinierad initieringsfil. Dessa funktioner tillhandahålls endast för kompatibilitet med 16-bitars versioner av Windows. Nya program bör använda registret.
| Funktion | Beskrivning |
|---|---|
| GetPrivateProfileInt | Hämtar ett heltal som är associerat med en nyckel i det angivna avsnittet i en initieringsfil. |
| GetPrivateProfileSection | Hämtar alla nycklar och värden för det angivna avsnittet i en initieringsfil. |
| GetPrivateProfileSectionNames | Hämtar namnen på alla avsnitt i en initieringsfil. |
| GetPrivateProfileString | Hämtar en sträng från det angivna avsnittet i en initieringsfil. |
| GetPrivateProfileStruct | Hämtar data som är associerade med en nyckel i det angivna avsnittet i en initieringsfil. |
| GetProfileInt | Hämtar ett heltal från en nyckel i det angivna avsnittet i Win.ini-filen. |
| GetProfileSection | Hämtar alla nycklar och värden för det angivna avsnittet i Win.ini-filen. |
| GetProfileString | Hämtar strängen som är associerad med en nyckel i det angivna avsnittet i Win.ini-filen. |
| WritePrivateProfileSection | Ersätter nycklarna och värdena för det angivna avsnittet i en initieringsfil. |
| WritePrivateProfileString | Kopierar en sträng till det angivna avsnittet i en initieringsfil. |
| WritePrivateProfileStruct | Kopierar data till en nyckel i det angivna avsnittet i en initieringsfil. |
| WriteProfileSection | Ersätter innehållet i det angivna avsnittet i filen Win.ini med angivna nycklar och värden. |
| WriteProfileString | Kopierar en sträng till det angivna avsnittet i Win.ini-filen. |
Föråldrade funktioner
Dessa funktioner tillhandahålls endast för kompatibilitet med 16-bitarsversioner av Windows: