从注册表获取值(在右窗格中)
本文关键字:注册表 获取 | 更新日期: 2023-09-27 17:49:30
我试图从Windows的注册表中获得一个值,它位于几个分支下:
HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows NT'CurrentVersion'...
给定以下代码:
RegistryKey openSubKey = settings.OpenSubKey(
@"''HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows NT'CurrentVersion'Print'Printers'DefaultSpoolDirectory");
openSubKey.SetValue("printername", "");
其中Microsoft.Win32.Registry
中的settings设置为LocalMachine。
然而,在第一行代码之后,我将得到null。到底发生了什么事?
两个错误,'HKEY_LOCAL_MACHINE不属于那里,你应该使用注册表。LocalMachine代替。DefaultSpoolDirectory不属于那里,它是一个值,而不是一个键。
SetValue()参数看起来也不太好。如果你想添加一个打印机(不要),那么你需要添加一个键,而不是一个值。
尝试删除"'hkey_local_machine"
Richard的回答似乎是正确的,但只是为了进一步通知您,您可以通过Registry.LocalMachine
属性访问注册表的LocalMachine
范围-查看此MSDN链接了解详细信息。例如,试试这样做:
var openSubKey = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE'Microsoft'Windows NT'CurrentVersion'Print'Printers");