c # - Få en værdi (i højre rude) fra registreringsdatabasen

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at få en værdi fra registreringsdatabasen i Windows, som sidder under flere grene:


HKEY\_LOCAL\_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion... 


I betragtning af følgende kode:


RegistryKey openSubKey = settings.OpenSubKey(
    @"\HKEY\_LOCAL\_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPrintPrintersDefaultSpoolDirectory");

openSubKey.SetValue("printername", "");


Hvor indstillinger er indstillet til LocalMachine i Microsoft.Win32.Registry.


Jeg bliver dog nul efter den første linje af kode. Hvad giver?

Bedste reference


To fejl, \ HKEY\_LOCAL\_MACHINE hører ikke der, du skal bruge Registry.LocalMachine i stedet. Og DefaultSpoolDirectory hører ikke derhen, det er en værdi, ikke en nøgle.


SetValue () argumenterne ser heller ikke godt ud. Hvis du vil tilføje en printer (don 't) så skal du tilføje en nøgle, ikke en værdi.

Andre referencer 1


prøv at fjerne '\ hkey\_local\_machine'

Andre referencer 2


Richards svar synes korrekt, men kun for at informere dig lidt længere, kan du få adgang til LocalMachine omfanget af registreringsdatabasen via ejendommen Registry.LocalMachine - tjek dette MSDN-link for detaljer. For eksempel, prøv dette: [7]


var openSubKey = Registry.LocalMachine.OpenSubKey(
    @"SOFTWAREMicrosoftWindows NTCurrentVersionPrintPrinters");