C#设置开机启动项、取消开机启动项

如果想你写的程序随系统开机一起启动的话,那么你可以照下面这个方法来做。 

RunWhenStart(false, Application.ProductName, Application.StartupPath + @"\MUS.exe");

/// <summary> 
/// 开机启动项 
/// </summary> 
/// <param name="Started">是否启动</param> 
/// <param name="name">启动值的名称</param> 
/// <param name="path">启动程序的路径</param> 
public static void RunWhenStart(bool Started, string name, string path) 
{ 
  RegistryKey HKLM = Registry.LocalMachine; 
  RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); 
  if (Started == true) 
  { 
    try
    { 
      Run.SetValue(name, path); 
      HKLM.Close(); 
    } 
    catch (Exception Err) 
    { 
      MessageBox.Show(Err.Message.ToString(), "MUS", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
  } [Page]
  else
  { 
    try
    { 
      Run.DeleteValue(name); 
      HKLM.Close(); 
    } 
    catch (Exception) 
    { 
      // 
    } 
  } 
}
/// <summary>
/// 开机启动项
/// </summary>
/// <param name="Started">是否启动</param>
/// <param name="name">启动值的名称</param>
/// <param name="path">启动程序的路径</param>
public static void RunWhenStart(bool Started, string name, string path)
{
  RegistryKey HKLM = Registry.LocalMachine;
  RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
  if (Started == true)
  {
    try
    {
      Run.SetValue(name, path);
      HKLM.Close();
    }
    catch (Exception Err)
    {
      MessageBox.Show(Err.Message.ToString(), "MUS", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
  } [Page]
  else
  {
    try
    {
      Run.DeleteValue(name);
      HKLM.Close();
    }
    catch (Exception)
    {
      //
    }
  }
}