说明
今天用C#开发了一个简单的服务,需要设置成为自启动,网上有很多方法,放到启动运行等,但是今天想介绍一个,通过修改注册表实现,同时介绍一下操作注册表。
private void TestReg(){//仅对当前用户有效 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run//using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true))//对所有用户有效 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runusing (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true)){if (key != null){string[] valueNames = key.GetValueNames();foreach (string valueName in valueNames){string valueData = key.GetValue(valueName).ToString();Console.WriteLine($"{valueName} {valueData}");}// 删除注册表项即可// key.DeleteValue(name, false);}}}
第一步使用 Registry可以获取当前用户注册表,以及所有用户的注册表,分别对应注册表的更路径。
获取到注册表键值RegistryKey,通过GetValueNames函数获取注册表项,遍历返回的数据组,可以得到对应的注册表项。