今天用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\Run
using (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函数获取注册表项,遍历返回的数据组,可以得到对应的注册表项。