using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Common.system
{
///
/// 自启帮助类
///
public static class AutoStartHelper
{
///
/// 开机自启动
///
/// 需要启动软件的路径
/// 错误信息
///
public static bool OpenAutoStart(string strName,out string Message)
{
#region 设置开机自启
if (!System.IO.File.Exists(strName))//判断要自动运行的应用程序文件是否存在
{
Message = "未检测到应用程序启动项。";
return false;
}
string strnewName = strName.Substring(strName.LastIndexOf("\\") + 1);//获取应用程序文件名,不包括路径
try
{
RegistryKey registry = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//检索指定的子项
if (registry == null)//若指定的子项不存在
registry = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");//则创建指定的子项
registry.SetValue(strnewName, strName);//设置该子项的新的“键值对”
Message = "";
return true;
}
catch (Exception ex)
{
Message = "设置失败,操作被拒绝:" + ex.Message;
LogHelper.WriteErrLog(Message, ex);
return false;
}
//if (MessageBox.Show("设置完毕") == DialogResult.OK)
//{
// RefreshSystem();//刷新系统
//}
#endregion
}
///
/// 关闭自启
///
/// 软件名称
/// 错误消息
///
public static bool CloseAutoStart(string strName, out string Message)
{
#region 取消开机自启
if (!System.IO.File.Exists(strName))//判断要取消的应用程序文件是否存在
{
Message = "未检测到应用程序启动项。";
return false;
}
string strnewName = strName.Substring(strName.LastIndexOf("\\") + 1);///获取应用程序文件名,不包括路径
try
{
RegistryKey registry = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//读取指定的子项
if (registry == null)//若指定的子项不存在
registry = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");//则创建指定的子项
registry.DeleteValue(strnewName, false);//删除指定“键名称”的键/值对
Message = "";
return true;
}
catch (Exception ex)
{
Message = "设置失败,操作被拒绝:"+ex.Message;
LogHelper.WriteErrLog(Message, ex);
return false;
}
//if (MessageBox.Show("设置完毕") == DialogResult.OK)
//{
// RefreshSystem();
//}
#endregion
}
///
/// 开机自启动
///
/// 程序名称
/// 错误信息
///
public static bool OpenAutoStart1(string exeName, out string Message)
{
#region 设置开机自启
try
{
Message = "";
return true;
}
catch (Exception ex)
{
Message = "设置失败,操作被拒绝:" + ex.Message;
LogHelper.WriteErrLog(Message, ex);
return false;
}
//if (MessageBox.Show("设置完毕") == DialogResult.OK)
//{
// RefreshSystem();//刷新系统
//}
#endregion
}
}
}