写注册表问题
最近在程序中对注册表写一些基本信息,之前是卸载 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);
}
而且必须要管理员运行程序才可以。。

浙公网安备 33010602011771号