写注册表问题

最近在程序中对注册表写一些基本信息,之前是卸载 current user 下。发现如果用户更换用户后。就无法读取信息了。

根据上述原因需要把注册表current user节点移动到 MACHINE节点下。在移动的过程中发现总是出错,经过查看代码发现MACHINE节点下必须指定相应的权限才可以。

顾改成如下:

RegistryKey SYSKEY = Registry.LocalMachine.OpenSubKey("SYSTEM", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.CreateSubKey);
                    key = SYSKEY.OpenSubKey(subkey,  RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.CreateSubKey | System.Security.AccessControl.RegistryRights.SetValue | System.Security.AccessControl.RegistryRights.ReadKey);
                    if (key == null)
                    {
                        SYSKEY.CreateSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree);
                    }

 而且必须要管理员运行程序才可以。。

posted @ 2014-07-12 12:12  阳光下的风  阅读(147)  评论(0)    收藏  举报