我将应用程序设置存储在 HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany 分支下。不同用户的设置必须相同,这就是设置不在 HKEY_CURRENT_USER 下的原因。注册表值在应用程序使用期间只读。
现在,在 Windows Vista 中,由于 UAC,您不能再使用以下代码读取注册表值:
RegistryKey myKey = Registry.LocalMachine.CreateSubKey
("SOFTWARE\\MyCompany\\MyAppName");
如何在我的代码 (C#) 中读取 LocalMachine 分支的值?
最佳答案
问题是您正在尝试创建一个未读取的 key 。如果您使用适当的 API,您应该能够在 Vista 上从 HKLM 读取值。
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(
@"Software\MyCompany\MyAppName",
false);
注意上面的 false 参数。这具有以只读模式打开 key 的效果。这是 OpenSubKey 的默认设置,但我更喜欢显式设置(主要是因为我永远记不起默认设置)。
关于c# - 如何在 Vista 中读取注册表分支 HKEY_LOCAL_MACHINE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/877851/