WinFrom应用程序开机自启动

文章目录

  • 1.程序里写自启动
    • 1.1 将程序路径写入注册表
    • 1.2 添加程序清单文件
    • 1.3 生成可执行文件时发生报错{ClickOnce 不支持请求执行级别requireAdministrator }
    • 1.4 测试
    • 1.5 删除注册表自启动
      • 方式一:程序里面
      • 方式二:注册表里面
  • 2.注册表自启动的几种方式
  • 3.任务计划程序库(开机后不进入桌面,可执行)

我的思路是将启动路径写入注册表,在程序启动时执行将应用写入注册表,在下次重启时则会自动启动。

1.程序里写自启动

1.1 将程序路径写入注册表

  • 可以自己在应用程序写复选框是否开机自启动
  • 也可以在启动winfrom时,直接执行下面代码

自启动执行代码

#region注册表自启动
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 { }
#endregion

1.2 添加程序清单文件

项目右键 》 添加 》新建项 》

WinFrom应用程序开机自启动_第1张图片

修改代码

 <!-- UAC 清单选项
   如果想要更改 Windows 用户帐户控制级别,请使用
   以下节点之一替换 requestedExecutionLevel 节点。n
<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

  指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
  如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
  元素。
-->
<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

改成


1.3 生成可执行文件时发生报错{ClickOnce 不支持请求执行级别requireAdministrator }

项目右键 》 属性 》安全性 》

去掉 【 启用ClickOnce安全设置(N) 】勾选
WinFrom应用程序开机自启动_第2张图片

1.4 测试

把自己的应用程序生成后,放到服务器,加上日志,看看开机后是否自启动。

如果遇到问题,可以以管理员身份启动应用程序。

1.5 删除注册表自启动

方式一:程序里面

#region注册表自启动
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.DeleteValue(name, false);
}
catch { }
#endregion

方式二:注册表里面

CMD 执行regedit

打开注册表后,Ctrl+F 查找程序名称

2.注册表自启动的几种方式

CMD执行regedit 注册表

开机启动项有四个可选也可以同时添加
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

右键 》 新建字符串值
数据里面写应用程序路径即可
在这里插入图片描述

3.任务计划程序库(开机后不进入桌面,可执行)

打开计算机,右键计算机,点击管理
WinFrom应用程序开机自启动_第3张图片

找到任务计划程序库,右边右键 新建任务
WinFrom应用程序开机自启动_第4张图片

配置程序启动信息,安全选项》选则 不管用户是否登录都要运行
WinFrom应用程序开机自启动_第5张图片

配置触发器,看什么时候执行
WinFrom应用程序开机自启动_第6张图片
点击新建,配置执行时间
WinFrom应用程序开机自启动_第7张图片
exe文件时后台静默启动
操作 》配置启动程序路径
WinFrom应用程序开机自启动_第8张图片

你可能感兴趣的:(C#使用,C#,Winfrom自启动)