Qt项目在Windows下结束外部进程
2020-03-02 04:34
1416 查看
Qt项目在Windows下结束外部进程
升级程序在进行升级前,需要结束待升级程序进程,结束部分文件的占用,避免更新文件失败。
调用Windows系统API
包含头文件
#include <Windows.h> #include <Tlhelp32.h>
使用CreateToolhelp32Snapshot()和Process32Next(),遍历所有进程名称,获取结束进程的pid,并根据pid结束相应进程。
示例代码:
void terminateApp() { HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32* processInfo=new PROCESSENTRY32; processInfo->dwSize=sizeof(PROCESSENTRY32); int index=0; int ID = 0; while(Process32Next(hSnapShot,processInfo)!=FALSE) { index++; int size=WideCharToMultiByte(CP_ACP,0,processInfo->szExeFile,-1,NULL,0,NULL,NULL); char *ch=new char[size+1]; if(WideCharToMultiByte(CP_ACP,0,processInfo->szExeFile,-1,ch,size,NULL,NULL)) { if(strstr(ch,"XXXXX.exe")) { ID = processInfo->th32ProcessID; HANDLE hProcess; hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,ID); TerminateProcess(hProcess,0); CloseHandle(hProcess); } } } CloseHandle(hSnapShot); delete processInfo; }
转载于:https://my.oschina.net/yangsenke/blog/825976
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Qt项目在Windows下结束外部进程
- Windows下查看进程及结束进程命令
- VC++ 系统服务如何让服务进程结束后依赖windows自身把服务重启
- 2019年··· Windows10下--Docker部署SpringBoot项目(java项目)(超详细教程)Docker上运行jar包,外部可访问。
- windows查看某个端口号被占用并结束此进程
- windows查看某个端口号被占用并结束此进程 [转]
- Qt项目 进程关不了? 简单粗暴
- QT设置窗口模态 进程调用外部程序和入参
- Windows查看进程和结束进程的方法
- Windows中根据端口号或PID查看进程、结束进程方法
- windows查看某个端口号被占用并结束此进程
- Windows查看端口占用情况并结束进程
- Windows下查看进程及结束进程命令
- QT项目如何引入外部库
- 在windows平台通过cmd编译QT项目时显示乱码的解决办法
- Windows环境下QT学习笔记02:QT Creator下新建项目
- Windows下使用taskkill 命令批量结束进程
- Windows下查看8080进程及结束进程命令
- Windows下的c++写的主进程调用Rscripte.exe子进程[进程结束的问题]
- 在windows下的qt5.7.1 的纯C或C++项目命令行中文乱码、无法编译等问题解决