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 } } }