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;

}