C# 将程序添加到启动项 (写入注册表),及从启动项中删除
#region 将程序添加到启动项
/// <summary>
/// 注册表操作,将程序添加到启动项
/// </summary>
public static void SetRegistryApp()
{
try
{
Microsoft.Win32.RegistryKey Reg;
string ShortFileName = Application.ProductName;
Reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (Reg == null)
{
Reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
}
Reg.SetValue(ShortFileName, Application.ExecutablePath);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
#region 将程序从启动项中删除
/// <summary>
/// 注册表操作,删除注册表中启动项
/// </summary>
public static bool DeleteRegisterApp()
{
string ShortFileName = Application.ProductName; //获得应用程序名
try
{
Microsoft.Win32.RegistryKey Reg;
Reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (Reg == null)
{
Reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
}
Reg.DeleteValue(ShortFileName, false);
}
catch (Exception ex)
{
return false;
}
return true;
}
#endregion
/// <summary>
/// 检查当前程序是否在启动项中
/// </summary>
/// <returns></returns>
public static bool CheckExistRegisterApp()
{
string ShortFileName = Application.ProductName; //获得应用程序名
bool bResult = false;
try
{
Microsoft.Win32.RegistryKey Reg;
Reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (Reg == null)
{
Reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
}
foreach (string s in Reg.GetValueNames())
{
if (s.Equals(ShortFileName))
{
bResult = true;
break;
}
}
}
catch (Exception ex)
{
return false;
}
return bResult;
}