C#客户端(WinForm)开机自动启动实现

匿名 (未验证) 提交于 2019-12-02 22:06:11

1.原理:需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下

2. 写入注册表的方式有两种

a.在生成安装程序时配置

b.在程序运行时,动态配置。

方法一:VS2010打包过程中,在生成安装程序时配置
右击安装编辑程序,在“视图”菜单中,选择“注册表”。通过右键菜单新建"键",创建出如图所示的路径。
右键Run,新建“字符串值”。为右侧的key命名(在注册表中不能重名),并在属性中指定它的value值。
注:[TARGETDIR]表示在程序的安装路径。
方法一本人亲测成功。
方法二:在程序运行时指定是否开机启动
 1 /// <summary>    2         /// 修改程序在注册表中的键值    3         /// </summary>    4         /// <param name="isAuto">true:开机启动,false:不开机自启</param>   5         public static void AutoStart(bool isAuto)  6         {  7             try  8             {  9                 if (isAuto == true) 10                 { 11                     RegistryKey R_local = Registry.LocalMachine;//RegistryKey R_local = Registry.CurrentUser; 12                     RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); 13                     R_run.SetValue("应用名称", Application.ExecutablePath); 14                     R_run.Close(); 15                     R_local.Close(); 16                 } 17                 else 18                 { 19                     RegistryKey R_local = Registry.LocalMachine;//RegistryKey R_local = Registry.CurrentUser; 20                     RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); 21                     R_run.DeleteValue("应用名称", false); 22                     R_run.Close(); 23                     R_local.Close(); 24                 } 25   26                 //GlobalVariant.Instance.UserConfig.AutoStart = isAuto; 27             } 28             catch (Exception) 29             { 30                 //MessageBoxDlg dlg = new MessageBoxDlg(); 31                 //dlg.InitialData("您需要管理员权限修改", "提示", MessageBoxButtons.OK, MessageBoxDlgIcon.Error); 32                 //dlg.ShowDialog(); 33                 MessageBox.Show("您需要管理员权限修改", "提示"); 34             }

注:该程序的启动项设置到HKEY_Current_User 下,推荐。如果想改在HKEY_LOCAL_MACHINE,只需将CurrentUser改为LocalMachine,即

1 Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");

操作注册表有可能会需要程序有管理员权限,这时候就要在程序以管理员身份启动并运行。此时应进行以下操作。

1、在程序中添加程序清单文件。通过VS添加,右键项目选择添加选择新建项,选择程序清单。如下图。
2、设置UAC 选项。如图。
转载地址:https://blog.csdn.net/wangzl1163/article/details/75040615

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!