c++开机自动启动程序
为了让程序开机自动启动,找了一些网上资料终于实现。
方法一 将批处理文件放到自启动目录里
我要开机自启动的正好是个批处理文件,因为多个程序需要同个库的不同版本,设置环境变量会冲突,就把自己需要的库写进自己的批处理文件中,执行对应的批处理文件
1.bat文件创建一个快捷方式
2.放在:
英文路径C:\Users\(自己的计算机用户名)\AppData\Roaming\Microsoft\Windows\Start \Menu\Programs\Startup
中文路径:\C盘(系统盘)\用户\(自己的计算机用户名)\AppData\Roaming\Microsoft\Windows\「开始」菜单\程序\启动
放在 路径下即可开机自启动
如果觉得上面的方法麻烦
1.bat创建一个快捷方式
2.键盘上Win+R
3.在弹出的窗口中输入命令shell:Common Startup并回车
4.自动打开开机自启动的文件夹
5.将快捷方式放入即可
网易解灰进阶教程(bat静默运行等教程) - 哔哩哔哩 (bilibili.com)
方法二 代码实现修改注册表
void HKRunator() { char programName[MAX_PATH] = { 0 }; DWORD dwRet = GetModuleFileName(NULL, (LPSTR)programName, MAX_PATH); HKEY hKey = NULL; DWORD rc; rc = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &hKey, NULL); if (rc == ERROR_SUCCESS) { rc = RegSetValueEx(hKey, "MyProgramName", 0, REG_SZ, (const BYTE*)programName, strlen(programName)); if (rc == ERROR_SUCCESS) { RegCloseKey(hKey); } } }
到这里仍没完,程序报rc=5,没有权限,还要设置一下。
属性》链接器》清单文件》UAC执行级别》
原来是asInvoker,设置为requireAdministrator
再下次选择提升权限重启就有权限执行成功了。
c语言 程序开机自启_键盘侠伍十七的博客-CSDN博客_c语言开机自启动
用C语言设置程序开机自启动_浪客小子的博客-CSDN博客_c语言开机自启动代码
C++ 设置程序开机自启动,并最小化至托盘_nSponge的博客-CSDN博客_c++最小化到托盘
RegCreateKeyEx函数_ke_yi_的博客-CSDN博客_regcreatekeyex
方法三 用脚本实现开机自动启动,不过我还没时间研究,试过程序会不断重启,可能参数有问题
@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit :begin set _task=ControlSys... set _runexe=start.vbs :checkstart echo "检查进程" for /f "tokens=5" %%c in ('qprocess.exe ^| find "%_task%"') do (if %%c==" " ( @echo ) else goto checkag ) goto startsvr :startsvr echo *********开始启动程序********** echo 启动时间 %time% >> restart.log echo set ws=wscript.createobject("wscript.shell") >> %_runexe% echo ws.run "ControlSys.bat",0,false >> %_runexe% start /b %_runexe% echo Wscript.Sleep Wscript.Arguments(0) >%tmp%\delay.vbs cscript //b //nologo %tmp%\delay.vbs 10000 del %_runexe% /Q echo **********程序启动完成********** goto checkstart :checkag echo Wscript.Sleep Wscript.Arguments(0) >%tmp%\delay.vbs cscript //b //nologo %tmp%\delay.vbs 10000 goto checkstart
Windows下程序的自启动脚本bat(教你直接用)_望夫山居士的博客-CSDN博客