Qt项目在Windows下结束外部进程
2017-01-16 00:00
477 查看
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; }
相关文章推荐
- vista&windows7下命令行结束进程
- 结束指定的windows进程
- Windows查找和结束指定进程
- QT5 第一章、windows下Qt5.0.2安装使用-空的Qt项目建立Helloworld
- windows查看端口占用情况与结束进程
- 无敌命令结束Windows系统进程
- Windows下的c++写的主进程调用Rscripte.exe子进程[进程结束的问题]
- Windows dos结束进程
- WinForm下点击按钮关闭项目所有的窗口(其实就是结束这个项目进程)
- windows下Qt 调用外部exe的方法
- Windows下结束进程运行的4种方法
- windows查看某个端口号被占用并结束此进程
- windows查看某个端口号被占用并结束此进程
- windows结束进程命令
- windows查看某个端口号被占用并结束此进程
- c# 使用Process调用外部程序时等待该进程结束后再执行住进程
- 结束占用端口进程以及windows命令行下杀进程
- Qt 进程间通讯学习(windows消息WM_COPYDATA)
- 基于QT项目在windows下发布--with SQLite3
- windows 系统强行结束系统进程命令