首页 > 其他分享 >exe重启自己,WinExec非阻塞、system阻塞

exe重启自己,WinExec非阻塞、system阻塞

时间:2024-01-17 21:59:22浏览次数:24  
标签:bat exe 阻塞 system Restart WinExec

使用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已经退出,脚本才执行起来,其实脚本没有问题。

 建议使用”阻塞“代码来执行脚本。

标签:bat,exe,阻塞,system,Restart,WinExec
From: https://www.cnblogs.com/xixixing/p/17971251

相关文章

  • archlinux xfce 出现[FAILED] Failed to mount /boot, systemctl status boot.mount出
    开机显示:[FAILED]Failedtomount/boot使用命令systemctlstatusboot.mount后出现mount:/boot:unknownfilesystemtype'vfat':pacman-Qilinux显示安装了6.7.arch3-1版本的内核而uname-a显示6.6.10-arch1-1版本的内核我的环境是archxfce+windows8.1个人原因......
  • Development and Construction of Dapp Pledge Mining System
    Pledgeminingsystemisanemergingapplicationofblockchaintechnology,whichpledgesdigitalassetsontheblockchaintoobtaincorrespondingproofofequity,inordertoachieveproofofequityminingontheblockchain.Thedevelopmentofpledgeminin......
  • systemtap首次运行.stp时奇怪报错解决
    一句话:更换合适版本。不管是源码编译还是直接安装的预编译包,版本必须与你的kernel匹配,不然就是一堆奇怪的报错,正面去解决是不可能的。 你可能会遇到这些编译输出:----------------------------------------------------------------------------------------------------------......
  • 深挖 Rundll32.exe 的多种“滥用方式”以及其“独特”之处
    恶意软件作者通常会编写恶意软件模仿合法的Windows进程。因此,我们可能会看到恶意软件伪装成svchost.exe、rundll32.exe或lsass.exe进程,攻击者利用的就是大多数Windows用户可能都不清楚这些系统进程在正常情况下的行为特征。在这篇文章中,我们将深挖rundll32.exe,以期对其有所了解。......
  • 【pwn】wustctf2020_closed --exec重定向
    这道题先来看一下ida这道题的代码逻辑很简单,首先关闭了标准输出和错误输出那可以将标准输出重定向到标准输入exec1>&0是一种Shell命令行中的重定向语法,用于将标准输出(文件描述符1)重定向到标准输入(文件描述符0)。在LinuxShell中,每个进程都有三个默认的标准文件描述符:标准......
  • 80端口被System占用最全解决方案
    背景想要启动若依系统,启动失败,提示80端口被占用。百度搜索了很多方法无法解决,现将自己尝试的方法都总结一下,希望对碰到这个问题的朋友有点帮助。解决方案首先查找占用80端口的程序进入命令提示行(开始运行输入CMD),输入命令netstat–ano,就可以看到本机所有端口的使用情况,一般......
  • IPP(Internet Printing Protocol)CUPS(Common Unix Printing System)
    IPP(InternetPrintingProtocol)是一个网络打印协议,用于在客户端和打印服务器之间进行通信和管理打印任务。而CUPS(CommonUnixPrintingSystem)是一个实现了IPP协议的打印系统框架。具体来说,以下是IPP组件和CUPS之间的区别:IPP组件:IPP组件是指实现了IPP协议规范的软件、库或模块......
  • 线程死锁与线程阻塞区别?以及定位分析?
    死锁的定义线程死锁就是有两个线程,一个线程锁住了资源A,又想去锁定资源B,另外一个线程锁定了资源B,又想锁定资源A。两个线程都想去得到对方的资源,而不愿意释放自己的资源,从而造成一种相互等待,无法执行的情况。定位分析:查看服务器的CPU、内存、IO、网络情况:命令:dstat-tcmnd–dist......
  • Zynq7020 使用 Video Processing Subsystem 实现图像缩放
    1、前言没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前市面上主流的FPGA图像缩放方案如下:1:Xilinx的HLS方案,该方案简单,易于实现,但只能用于Xilinx自家的FPGA;2:非纯Verilog方案,大部分代码使用Verilog实现,但中间的fifo或ram等使用了IP,导致......
  • vllm 安装踩坑 (The NVIDIA driver on your system is too old)
    我的环境如下:nvidia-smi显示cuda版本是11.7目前最新vllm要求的torch版本是2.1.2,该版本要求的cuda版本是11.8,所以不匹配。执行安装会遇到如下错误RuntimeError:TheNVIDIAdriveronyoursystemistooold(foundversion11070).PleaseupdateyourGPUdrive......