Windows下设置开机自启动的方式(手动/C++代码的形式)

Windows下自启动相关软件的原理

  • 首先讲解一下Windows下是如何会实现开机自启动相关软件的原理,由于Windows本身有注册表机制,所谓注册表,可以理解其为Windows自带的数据库。在win+r输入regedit即可查看

  • 如图所示,注册表当中基本上都是以key-value的形式进行保存。
  • 然后Windows在系统打开时,就会默认先去读取数据库(即注册表)的相关配置信息来自启动相关软件,那样恶意流氓软件也可以通过修改注册表的信息来对系统进行攻击。
  • 所以,如果设置开机自启动,其实只要在注册表中修改相应的值即可。
  • 修改位置在注册表中存放于:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run当中,只要在其中右键添加相应的字符串值即可。
  • 其中需要启动软件路径字符串需要添加引号才行。

C++代码方式设置 开机自启动软件

  • 在了解完原理之后,C++代码启动做的事就很简单了,写入注册表即可
  • 接下来是相关代码
bool WriteToRegedit(HKEY hKey_,std::wstring path_,std::wstring key_,std::wstring value_)
{HKEY hkey;::RegCreateKeyExW(hKey_, path_.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkey, NULL);//::RegSetValueExW(hkey, key_.c_str(), 0, REG_SZ, reinterpret_cast<LPBYTE>(const_cast<wchar_t*>(value_.c_str())),sizeof(std::wstring::value_type) * (value_.size() + 1));::RegCloseKey(hkey);return true;
}// 设置开机自启动方法
// @param:key_:启动项名称
// @param:value_:启动文件路径
// return: false: 设置失败 true:设置成功
bool SetBootStartUp(std::wstring key_,std::wstring path_ )
{return WriteToRegedit(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\CurrentVersion\\Run",key_,path_);
}

代码比较简单,也就是写入字符串到对应注册表的位置,
使用方法:

 std::wstring key_ = L"TestDemo";std::wstring path = L"\"SSSS\"";SetBootStartUp(key_,path);
  • 希望对大家有帮助

Windows下设置开机自启动的方式(手动/C++代码的形式)相关推荐

  1. ubuntu下设置开机自启动项

    这里说明,Ubuntu 中系统没有了RH系统中的 chkconfig 命令 ! 可用一些小工具来管理 Ubuntu 的启动选项: 小工具 rcconf: #sudo apt-get rcconf #s ...

  2. windows下设置开机启动项并修改启动顺序

    设置开机启动项: 打开"运行",输入"regedit",进入"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Window ...

  3. windows下程序开机自启动(任务计划程序)

    1.bat文件的建立 新建文本文件DebugStart.txt,打开写入以下内容: tasklist|find /i "KMX_Daemon.exe" && ech ...

  4. oracle11g设置开机自启动,oracle11g在linux系统下开机自启动设置

    oracle服务器一般来说最好是手动启动,这样碰到问题的话,可以现场解决,但是也担心有时候机器故障,自动重启后,为了快速恢复应用,需要自动开机启动oracle,而且发现在不同的os下,启动的设置都不太 ...

  5. SuperMap iServer在不同系统中设置开机自启动--Windows篇

    目录 前言 1.删除已有的 SuperMap iServer 系统服务 2.注册 SuperMap iServer 系统服务 3.设置 SuperMap iServer 系统服务开机自启动 实例 作者 ...

  6. 【Windows工具】QuickLook-3.6.11 安装并设置开机自启动(含较难下载的 QuickLook-3.6.11 安装包百度云盘资源)

    1.QuickLook资源链接: https://pan.baidu.com/s/1netQwuSIaYGFatpjLAIYxw 提取码:fcle 2.设置开机自启动 设置开机自启动的方法很多,这里分 ...

  7. linux下oracle开机自启动,Linux下开机自动启动Oracle的设置

    让我手动启动数据库,我决定花点时间研究下Oracle随Linux自动重启的设置,具体方法如下: 因为办公室突然停电,服务器重启后,数据库并没有跟着重启,,我才发现原来所有的数据库都没有设置开机自动重启 ...

  8. Windows守护进程实现/设置程序图标/隐藏黑窗/获取exe所在目录/设置开机自启动

    功能:实现一个windows守护进程,设置有自定义图标,启动后隐藏黑窗口,获取exe所在目录,并设置开机自启动(需要以管理员权限运行).如果需要打包成可执行的安装包程序,见另一篇博客:https:// ...

  9. win10手动设置开机自启动项

    因为经常要用学校的内网连接,所以每次重启电脑都要连接一个iNode客户端,虽然在开始安装的时候可以设置开机自启动,但是当时为了不占用太多的开机启动时间就没有选择开机启动,但是,发现每天都要用的东西还是 ...

最新文章

  1. 【R语言学习】时间序列
  2. dlib dll load failed 找不到指定的模块
  3. matlab频域怎么提取特征值,补充:频域特征值提取的MATLAB代码实现(小波分析)...
  4. 解决tomcat同时部署多个SpringBoot应用提示InstanceAlreadyExistsException
  5. 实现将字符串转换为指令执行
  6. Java高级开发面试,java泛型下界通配符
  7. oracle 对应的JDBC驱动 版本
  8. 张一鸣这一条微博,阿里P8的我,竟然想了一夜
  9. toad for mysql调试存储过程_【oracle】oracle 调试 存储过程
  10. Kafka API: TopicMetadata
  11. fpga开发教程 labview_NILabVIEW高性能FPGA开发者指南.pdf
  12. 新世纪孙鹏飞带你整理平面排版
  13. c语言 sub(),C语言考试试题
  14. 10-调用门(有参)实验
  15. Single Yuanz(单一原则)
  16. 文末送书丨深度解读,人是如何在一瞬间理解语言的?
  17. Drone CI/CD系列(二)——python语言之配置.drone.yml文件
  18. 解决:interface conversion: interface {} is float64, not int
  19. 20220411日志
  20. 华为liteos内存管理源码以及架构分析

热门文章

  1. 涨姿势,简单易懂带你玩转二叉树(图码并茂)
  2. vue+Java后端进行调试时如何解决跨域问题
  3. Java多线程学习二十八:原子类和 volatile 有什么异同?
  4. 按职称分类统计人数access_500万人!2021会计职称报考人数要“爆”,通过率或刷新低...
  5. Docker + Zookeeper + SolrCloud(8.1.1)跨主机搭建集群有问题
  6. Java并发编程-多线程基础
  7. leetcode题解173-二叉搜索树迭代器
  8. doc.update
  9. Spring(1)—初识
  10. BeanUtils介绍及其使用