当前位置: 移动技术网 > IT编程>开发语言>.net > C#客户端(WinForm)开机自动启动实现

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

2018年08月18日  | 移动技术网IT编程  | 我要评论

日批过程图,聊斋艳谭快播,北京代理记账

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 选项。如图。
 
转载地址:
                

 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网