设置程序开机启动,可以通过修改注册表将启动信息写入注册表来实现。
在"运行"中输入 regedit ,就可以打开注册表。注册表左侧的都是项,右边列出值(一项可以对应
多个值),每个值对应 值名称 和 值数据。
C#为操作注册表提供了两个类,Registry和RegistryKey。
Registry提供提供静态方法对访问,RegistryKey提供实例方法对具体的项和值进行读写。
下面这个程序函数可以添加开机启动项或删除某个开机启动项:
/// <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 rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
try
{
if (Started == true)
{
rk.SetValue(name, path);
}
else
{
rk.DeleteValue(name);
}
}
catch (Exception Err)
{
MessageBox.Show(Err.Message.ToString(), "错误提示",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
finally
{
rk.Close();
}
}
调用时可以这样调用:
//开机启动记事本 RunWhenStart(true, "开机运行记事本",@"C:\Windows\notepad.exe"); //删除这个值 RunWhenStart(false,"开机运行记事本",@"C:\Windows\notepad.exe");
提示:如果第一个参数为true,并且.exe程序路径正确,那么运行时360就会有提示说有人修改
开机启动项;如果第一个参数为false,那么就会删除该项值。