• C# 程序开机自动启动


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

    2 默认管理员运行的程序

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

     "requireAdministrator" uiAccess="false" />

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

       

    1. var starupPath = GetType().Assembly.Location;//获得程序路径其他方式也可以
    2. try
    3. {
    4. var fileName = starupPath;
    5. var shortFileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
    6. //打开子键节点
    7. var myReg = Registry.LocalMachine.OpenSubKey(
    8. "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", RegistryKeyPermissionCheck.ReadWriteSubTree,
    9. RegistryRights.FullControl);
    10. if (myReg == null)
    11. {
    12. //如果子键节点不存在,则创建之
    13. myReg = Registry.LocalMachine.CreateSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run");
    14. }
    15. if (myReg != null && myReg.GetValue(shortFileName) != null)
    16. {
    17. //在注册表中设置自启动程序
    18. myReg.DeleteValue(shortFileName);
    19. myReg.SetValue(shortFileName, fileName);
    20. }
    21. else if (myReg != null && myReg.GetValue(shortFileName) == null)
    22. {
    23. myReg.SetValue(shortFileName, fileName);
    24. }
    25. }
    26. catch
    27. {
    28. }

    这里需要注意的是

    (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的内容例子如下:

    1. C:
    2. cd C:\Users\user\Desktop\Debug
    3. chcp 65001
    4. @setlocal enableextensions enabledelayedexpansion
    5. @echo off
    6. set m_path="C:\Users\user\Desktop\Debug\program.exe"
    7. echo !m_path!
    8. echo 开始启动...
    9. start "" !m_path!
    10. echo "结束"
    11. exit

  • 相关阅读:
    【任务调度】定时任务,SpringTask,Quartz
    艾美捷细胞计数试剂盒-8(CCK-8),一步到位
    ES6的基础用法
    PyCharm 常用快捷键
    你需要知道的ES6—ES13开发技巧
    前端包管理工具之npm、cnpm、yarn
    冠达管理:k线图解大全?
    HTML+CSS项目案例
    供给侧结构性改革语境应对世界市场 国稻种芯百团计划行动
    C语言--输出1-100以内同时能被3和5整除的数
  • 原文地址:https://blog.csdn.net/wxtcstt/article/details/126605196