exe重启自己,WinExec非阻塞、system阻塞
使用bat脚本,先杀死exe进程,再启动exe
restart.bat
@echo off ::注意保存编码格式为ANSI,否则中文乱码 taskkill /f /im "Restart.exe" echo "exe进程停止成功" ::休眠10s timeout /t 10 /nobreak start "" "E:\Restart\x64\Debug\Restart.exe" echo "exe进程启动成功"
控制台程序 Restart.exe
main.cpp
#include<Windows.h> int main() { Sleep(5000); //WinExec("restart.bat", SW_HIDE); //非阻塞 system("restart.bat"); //阻塞 }
restart.bat放到生成的Restart.exe路径中,双击exe即可。
注意,WinExec和system都是执行脚本的函数,但是前者是非阻塞的,后者是阻塞的。
使用”非阻塞“代码时,提示没找到进程。原因是程序已经执行完毕,exe已经退出,脚本才执行起来,其实脚本没有问题。
建议使用”阻塞“代码来执行脚本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-01-17 函数返回值是引用类型,此函数当左值、右值
2019-01-17 5.2 SW1控制LED1亮灭(中断功能)