C# 写入注册表本地计算机错误

C# 写入注册表本地计算机错误,c#,registry,privileges,C#,Registry,Privileges,我想用C#设置某个扩展的默认图标。但这给了我错误->安全异常未处理 RegistryKey FileExt = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Classes", RegistryKeyPermissionCheck.ReadWriteSubTree); 我该怎么做呢?我想这是在Windows Vista或7上 您可能需要具有提升的权限才能更改注册表中的某些值。即使是具有管理权限的用户也会在程序执行此操作之前获得UAC弹出窗口以请求权限

我想用C#设置某个扩展的默认图标。但这给了我错误->安全异常未处理

RegistryKey FileExt = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Classes", RegistryKeyPermissionCheck.ReadWriteSubTree);

我该怎么做呢?

我想这是在Windows Vista或7上

您可能需要具有提升的权限才能更改注册表中的某些值。即使是具有管理权限的用户也会在程序执行此操作之前获得UAC弹出窗口以请求权限

看一看关于这件事的报告


这是一个关于获得提升权限的codeproject。

您用来登录计算机的用户可能没有访问或修改注册表的权限。尝试使用管理员帐户运行代码,看看会发生什么。此外,如果没有用户登录,则可能会发生相同的错误,例如检查。

尝试以管理员身份运行应用程序。

尝试此方法,而不是您的方法:

public RegistryKey OpenSubKey(
    string name,
    bool writable
)
也许一个
真的
就足够了;-)


谢谢,这很有效。我可以通过C#请求以管理员身份运行窗口吗?检查此项
Registry.LocalMachine.OpenSubKey("SOFTWARE\\Classes", true);