如果想你写的程序随系统开机一起启动的话,那么你可以照下面这个方法来做。
RunWhenStart(false, Application.ProductName, Application.StartupPath + @"/ToolsByJack.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)
{
System.Windows.Forms.MessageBox.Show(err.Message, "ToolsByJack", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); }
} else
{
try
{
if (Run.GetValue(name) != null)
{
Run.DeleteKey(name,false);
HKLM.Close();
}
RunWhenStart(false, Application.ProductName, Application.StartupPath + @"/ToolsByJack.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)
{
System.Windows.Forms.MessageBox.Show(err.Message, "ToolsByJack", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); }
} else
{
try
{
if (Run.GetValue(name) != null)
{
Run.DeleteKey(name,false);
HKLM.Close();
}
}
catch (Exception)
{
//
}
}
}
catch (Exception)
{
//
}
}
}