报错的异常类:
System.UnauthorizedAccessException:
// Microsoft.Win32.RegistryKey 只读,因此无法写入;例如,项不是用写访问权限打开的。 或 - Microsoft.Win32.RegistryKey
// 对象表示根级别节点,操作系统为 Windows Millennium Edition 或 Windows 98。
因为我打开注册表使用的OpenSubKey函数,这个函数对注册表没有写入权限。
官方给的这个OpenSubKey函数的注释是——要以只读方式打开的子项的名称或路径。
要使用CreateSubKey函数打开注册表再OpenSubKey才能有写入权限(前提是运行程序的人本身拥有写入这个注册表项的权限),才能使用SetValue写入注册表。
发现隔壁有更加简单的方法
发现只要使用这个函数的重载,后面加个true,如OpenSubKey(subKey, true),也能解决这个问题