Winform程序开机自启动
思路:将启动路径写入注册表
方法:在程序启动时执行如下方法,在下次重启时则会自动启动
private void SetAutoStart()
{
try
{
string regPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
string path = Application.ExecutablePath.ToLower();
string name = Path.GetFileName(path);
var regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(regPath, true);
if (regKey == null) regKey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(regPath);
regKey.SetValue(name, path);
}
catch { }
}
填坑:写注册表需要系统管理员权限,若发现以上方法未成功实现,则需进行如下操作:
1、在程序中添加程序清单文件:新建项->应用程序清单文件
2、打开刚刚新建的清单文件,按照下图修改UAC选项
修改完成,现在试试看行不行。
继续填坑:如果修改完成生成可执行文件时发生报错{ClickOnce 不支持请求执行级别requireAdministrator },那么请跟着我操作:
在【解决方案资源管理器】中右键你的项目—>打开“属性”—>左边选择“安全性”—>把【启用ClickOnce安全设置】的勾子去掉。
OK~!