c ++ - Sådan opdateres HKEY\_CLASSES\_ROOT efter en ny subky er tilføjet til HKEY\_LOCAL\_MACHINE \ Software \ Classes

Indlæg af Hanne Mølgaard Plasc

Problem



MSDN siger: [13]



  Klasse registrering og filnavn udvidelsesoplysninger er gemt under både HKEY\_LOCAL\_MACHINE og HKEY\_CURRENT\_USER -tasterne. Knappen HKEY\_LOCAL\_MACHINE \ Software \ Classes indeholder standardindstillinger, som kan gælde for alle brugere på den lokale computer. Knappen HKEY\_CURRENT\_USER \ Software \ Classes indeholder indstillinger, der kun gælder for den interaktive bruger. HKEY\_CLASSES\_ROOT -tasten giver et billede af registreringsdatabasen, der fusionerer oplysningerne fra disse to kilder. HKEY\_CLASSES\_ROOT giver også denne fusionerede visning til programmer designet til tidligere versioner af Windows.



Betyder det, hvis jeg tilføjer en undernøgle til HKEY\_LOCAL\_MACHINESoftwareClasses (siger en ny filtypenavn), vil beholderen med HKEY\_CLASSES\_ROOT opdateres automatisk og dermed?


Hvis ikke, hvad skal jeg gøre?

Bedste reference


HKEY\_CLASSES\_ROOT er ikke et rigtigt fysisk bikube (det gemmer ingen data), det er bare en flettet visning af HKEY\_CURRENT\_USERSoftwareClasses og HKEY\_LOCAL\_MACHINESoftwareClasses. Opdateringer til de underliggende nøgler er øjeblikkeligt synlige i HKEY\_CLASSES\_ROOT. [14]


Værdierne i HKEY\_CURRENT\_USER tilsidesætter værdierne i HKEY\_LOCAL\_MACHINE fordi når de åbner HKEY\_CLASSES\_ROOT, forsøger registreringsinstanserne at læse først fra HKEY\_CURRENT\_USER.


Derudover er HKEY\_CURRENT\_USER faktisk et alias/symlink af en nøgle under HKEY\_USERS.