日期:2014-05-18  浏览次数:22142 次

如何解决对注册表的访问被拒绝
C# code
RegistrySecurity rsy = new RegistrySecurity();
            RegistryAccessRule rar = new RegistryAccessRule(Environment.UserDomainName +
                "\\" + Environment.UserName, RegistryRights.ReadKey | RegistryRights.WriteKey |
                RegistryRights.Delete, InheritanceFlags.ContainerInherit, PropagationFlags.None,
                AccessControlType.Allow);
            rsy.AddAccessRule(rar);
            Microsoft.Win32.RegistryKey rootKey = Microsoft.Win32.Registry.LocalMachine;//本地计算机数据的配置 
            Microsoft.Win32.RegistryKey runKey = rootKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", RegistryKeyPermissionCheck.ReadWriteSubTree,rsy);


以上这段代码提示:
对注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”的访问被拒绝。

我的目的是把这个程序开机自动启动的信息写入注册表,但是注册表被拒绝访问. 管理员权限打开VS时没问题,请问怎么解决普通用户情况下的这个问题啊...
谢谢大家了

------解决方案--------------------
探讨
C# code
RegistrySecurity rsy = new RegistrySecurity();
RegistryAccessRule rar = new RegistryAccessRule(Environment.UserDomainName +
"\\" + Environment.UserName, Registry……

------解决方案--------------------
建議LZ寫user那個主鍵~不要寫入MACHINE就不會有這樣的問題了~