C#应用开机自启
2022/5/23 5:02:49
本文主要是介绍C#应用开机自启,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C# Winform打包部署时添加注册表信息实现开机自启动
1.原理:需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下
2. 写入注册表的方式有两种
a.在生成安装程序时配置
b.在程序运行时,动态配置
方法一:使用VS2010自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时操作注册表实现开机启动软件。具体实现如下:1、添加安装部署项目后,鼠标右键安装项目->视图->注册表,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中 添加键值保存软件目录。
注意:默认的可能只有HKEY_CURRENT_USER\Software\[Manufacturer],没关系,我们依次添加以上的项即可,通过右键菜单新建"键",创建出如图所示的路径。即:HKEY_CURRENT_USER\Software\[Manufacturer]\Windows\CurrentVersion\Run。
2、然后在Run中添加字符串值,键名可以自己起,value要填软件的物理路径。
物理路径是客户在部署确定的,我们如何获取呢?这里我们可以使用[TARGETDIR]获取客户选择的路径,在加上软件的启动文件名称。比如软件启动文件的名称是xx.exe,那么Value的值就为:[TARGETDIR]xx.exe。
public static string filePath = Application.StartupPath + @".\文件夹\文件名.bmp";//系统的filePath的路径
方法二:在程序运行时指定是否开机启动 在程序运行时,通过调用如下方法实现开机启动
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 http://blog.csdn.net/liyc123youxiang/article/details/45870563
这篇关于C#应用开机自启的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具