C# 实现程序的开机启动
2010-10-25 16:53
323 查看
/// <summary> /// 保存开启启动设置的方法 /// </summary> private void DoAutoRunXML() { XmlNode root = clsXMl.GetRootNode(); foreach (XmlNode node in root.ChildNodes) { if (node.Name == "AutoRun") { if (node.InnerText == "no") { node.InnerText = "yes";//重写XML ToolStripMenuItemAutoRun.Checked = true; RunWhenStart(true, Application.ProductName, Application.StartupPath + "//" + Application.ProductName + ".exe"); } else if (node.InnerText == "yes") { node.InnerText = "no"; ToolStripMenuItemAutoRun.Checked = false; RunWhenStart(false, Application.ProductName, Application.StartupPath + "//" + Application.ProductName + ".exe"); } } } clsXMl.xmlSave(); } /// <summary> /// 修改 开机启动 注册表的方法 /// </summary> /// <param name="bFlag"> 是否开机启动</param> /// <param name="strName">启动值的名称</param> /// <param name="strPath">启动程序的路径</param> private void RunWhenStart(bool bFlag, string strName, string strPath) { Microsoft.Win32.RegistryKey rootKey = Microsoft.Win32.Registry.LocalMachine;//本地计算机数据的配置 Microsoft.Win32.RegistryKey runKey = rootKey.CreateSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run"); if (bFlag == true)//创建开机启动 { try { runKey.SetValue(strName, strPath); rootKey.Close();// 刷新 关闭 保存修改 } catch (Exception ex) { MessageBox.Show(ex.Message, " 提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { try { runKey.DeleteValue(strName); rootKey.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, " 提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } GC.Collect(); }
主要思想是修改注册表,但是rootKey选择LocalMachine的话在win7会涉及权限的问题,所以这个键还是选择CurUser比较好.
相关文章推荐
- C#实现程序开机启动的方法
- C# 实现程序的开机启动
- c#实现程序的开机启动
- c#下实现程序开机自动启动
- C#实现一个用于开机启动其他程序的Windows服务(2009-07-01)
- C#实现程序开机启动的方法
- C# 实现是否设置指定程序为开机启动程序
- C#实现一个用于开机启动其他程序的Windows服务
- C# 实现程序的开机启动
- C#实现一个用于开机启动其他程序的Windows服务
- c#开机自动启动程序实现代码
- C# 实现程序的开机启动
- c#开机自动启动程序实现代码
- c#开机自动启动程序实现代码
- C#实现程序的开机启动
- C# 编写Windows服务实现开机启动一个程序
- C#实现一个用于开机启动其他程序的Windows服务
- c#实现程序的开机启动
- 让你写的c#程序一开机就自动运行 Windows服务实现开机启动
- C#实现程序开机启动