原文:[C#] Registrykey 登录机码的新增、修改、删除、读取
写 Windows 应用程式时,常常会将一些参数存至机码里面,今天来简单的笔记一下 Registry 的 CRUD。
在 64-bits 的作业系统下执行 32-bits 或 64-bits 应用程式时,预设写入 Registry 会被作业系统写入 Wow6432Node 的目录底下。在 HKEY_LOCAL_MACHINE\SOFTWARE\
底下写入机码,就会出现在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\
,其目的是为了区分 32-bits 与 64-bits 作业系统的对应而产生的结果,只有真正的 64-bits 应用程式才能写在 HKEY_LOCAL_MACHINE\SOFTWARE\
目录。
新增、修改:
RegistryKey registryKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\RegistryKeyTest");registryKey.SetValue("Path", "C:\\");
若新增对象不存在则会新增
读取:
RegistryKey registryKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\RegistryKeyTest");string value = registryKey.GetValue("Path")?.ToString();
删除:
RegistryKey registryKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\RegistryKeyTest");registryKey.DeleteValue("Path");
若删除对象不存在则会抛 Exception.
删除 Registry Key 及其底下所有内容:
Registry.LocalMachine.DeleteSubKeyTree(@"SOFTWARE\RegistryKeyTest");
若删除对象不存在则会抛 Exception.
若要想自己指定写入位置可以使用下面的方法来达成
var registry64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);var registryKeyTest = registry64.CreateSubKey(@"SOFTWARE\RegistryKeyTest");registryKeyTest.SetValue("Path", "C:\\aaa");