当前位置: 首页 > news >正文

C# 程序开机自动启动

1 非管理员运行的程序最简单的是在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 路径下放入超链接即可

2 默认管理员运行的程序

  (1)在程序的app.manifest中设置如下

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

   (2)在程序的启动时调用如下代码

   

 var starupPath = GetType().Assembly.Location;//获得程序路径其他方式也可以
            try
            {
                var fileName = starupPath;
                var shortFileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
                //打开子键节点
                var myReg = Registry.LocalMachine.OpenSubKey(
                    "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", RegistryKeyPermissionCheck.ReadWriteSubTree,
                    RegistryRights.FullControl);
                if (myReg == null)
                {
                    //如果子键节点不存在,则创建之
                    myReg = Registry.LocalMachine.CreateSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run");
                }
                if (myReg != null && myReg.GetValue(shortFileName) != null)
                {
                    //在注册表中设置自启动程序
                    myReg.DeleteValue(shortFileName);
                    myReg.SetValue(shortFileName, fileName);

                }
                else if (myReg != null && myReg.GetValue(shortFileName) == null)
                {
                    myReg.SetValue(shortFileName, fileName);

                }
            }
            catch
            {

            }

这里需要注意的是

(1)你的程序是32位的注册表路径是
          "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run"

(2) 你的程序是64位的注册表路径是

          "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"

这样设置后你的程序仍然没有启动?

这时可能和你的程序调用了你程序文件夹下的文件有关系,这时可以写一个run.bat脚本,在脚本中先cd到你的程序路径,然后启动程序,最后把run.bat的超链接放在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp中

bat的内容例子如下:

C:
cd C:\Users\user\Desktop\Debug
chcp 65001
@setlocal enableextensions enabledelayedexpansion

@echo off
set m_path="C:\Users\user\Desktop\Debug\program.exe"
echo !m_path!

echo 开始启动...
start  "" !m_path!
echo "结束"
exit

相关文章:

  • html2canvs的一些问题
  • 金仓数据库 KingbaseES 插件参考手册 S(3)
  • Flutter聊天布局之图片视频上传、显示、保存到相册
  • Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution
  • 基于SSM框架实现学生管理系统
  • JavaScript聊天框插入表情: 点击表情时输入框失焦, 无法插入到输入框.
  • 使用esxcli命令升级VMware ESXi补丁
  • java调用python文件的几种方式【超细讲解!】
  • c++ 关于bfs和dfs的相对统一写法
  • 2023年湖北三类人员安全员A证报考条件需要什么资料?
  • Maven进阶-多环境开发与跳过测试
  • Activiti7工作流引擎
  • 物联网边缘-物联网准入或接入安全防护产品及解决方案
  • Java-序列化和反序列化
  • 怎么批量转换图片格式?这些方法帮助你一键转换
  • 【Linux系统编程】快速查找errno错误码信息
  • IndexedDB
  • Markdown 语法简单说明
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Promise初体验
  • Python - 闭包Closure
  • React16时代,该用什么姿势写 React ?
  • Vultr 教程目录
  • Xmanager 远程桌面 CentOS 7
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 前端知识点整理(待续)
  • 深入浅出webpack学习(1)--核心概念
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​你们这样子,耽误我的工作进度怎么办?
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (a /b)*c的值
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (SpringBoot)第二章:Spring创建和使用
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)springboot教学评价 毕业设计 641310
  • (论文阅读30/100)Convolutional Pose Machines
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net framework profiles /.net framework 配置
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 回调、接口回调、 委托
  • .Net程序帮助文档制作
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • /bin/bash^M: bad interpreter: No such file or directory
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @拔赤:Web前端开发十日谈
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色