【发布时间】:2023-04-01 11:28:02
【问题描述】:
如何使用 C# 添加/更改 OEMInformation 注册表项?
我尝试使用此代码,但它返回错误:
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\Windows\CurrentVersion\OEMInformation", true);
myKey.SetValue("manufacturer", "Asus", RegistryValueKind.String);
正在返回此错误:
mscorlib.dll 中出现“System.Security.SecurityException”类型的未处理异常
附加信息:不允许请求的注册表访问。
编辑:
也试过这段代码:
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\Windows\CurrentVersion\OEMInformation");
key.SetValue("manufacturer", "Asus");
key.Close();
但此代码也返回错误:
mscorlib.dll 中出现“System.UnauthorizedAccessException”类型的未处理异常
附加信息:无法写入注册表项。
我的应用程序已经使用以下代码以管理员身份运行:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
【问题讨论】:
-
您添加了代码,但它实际上是以管理员身份运行的吗?您需要检查项目设置是否实际使用您指定
RequireAdministrator行的清单文件。 -
此外,如果您右键单击该键并转到
Permissions,它是否显示Administrators has full control rights to the Key?