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已經退出,腳本才執行起來,其實腳本沒有問題。

 建議使用”阻塞“代碼來執行腳本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章