Qt在windows下杀死进程:QProcess和系统API两种方式
来源:互联网 发布:淘宝访客其他来源 编辑:程序博客网 时间:2024/06/05 00:42
虽然方法能查到,这里总结一下,以后方便回顾一下
1、QProcess
QProcess p; QString c = "taskkill /im DingTalk.exe /f"; p.execute(c); p.close();
直接执行CMD中的命令,注意空格!!!
2、系统API
根据进程名称先找到进程PID,再根据PID杀死进程
#include <Windows.h>#include <tlhelp32.h>#include <string.h>using namespace std;/*根据进程名称杀死进程 *1、根据进程名称找到PID *2、根据PID杀死进程 */int killTaskl(const QString& exe) { //1、根据进程名称找到PID HANDLE hProcessSnap; PROCESSENTRY32 pe32; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnap == INVALID_HANDLE_VALUE) { return -1; } pe32.dwSize = sizeof(PROCESSENTRY32); if (!Process32First(hProcessSnap, &pe32)) { CloseHandle(hProcessSnap); return -1; } BOOL bRet = FALSE; DWORD dwPid = -1; while (Process32Next(hProcessSnap, &pe32)) { //将WCHAR转成const char* int iLn = WideCharToMultiByte (CP_UTF8, 0, const_cast<LPWSTR> (pe32.szExeFile), static_cast<int>(sizeof(pe32.szExeFile)), NULL, 0, NULL, NULL); std::string result (iLn, 0); WideCharToMultiByte (CP_UTF8, 0, pe32.szExeFile, static_cast<int>(sizeof(pe32.szExeFile)), const_cast<LPSTR> (result.c_str()), iLn, NULL, NULL); if (0 == strcmp(exe.toStdString().c_str(), result.c_str ())) { dwPid = pe32.th32ProcessID; bRet = TRUE; qDebug()<<"zhaodao"; break; } } CloseHandle(hProcessSnap); qDebug()<<dwPid; 2、根据PID杀死进程 HANDLE hProcess=NULL; //打开目标进程 hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,dwPid); if (hProcess==NULL) { qDebug()<<"Open Process fAiled ,error:"<<GetLastError(); return -1; } //结束目标进程 DWORD ret=TerminateProcess(hProcess,0); if(ret==0) { qDebug()<<"kill task faild,error:"<<GetLastError(); return -1; } return 0;}
PS:WCHAR转const char*有更好的方法请留言,谢谢!
阅读全文
1 0
- Qt在windows下杀死进程:QProcess和系统API两种方式
- android杀死进程的两种方式
- Windows下杀死进程
- Windows下杀死进程
- windows 下杀死进程
- windows 下杀死进程
- qt环境程序中通过QProcess启动进程的方式启动windows系统自带的画图程序中遇到的错误
- windows环境下查看进程和杀死进程
- Qt进程QProcess相关
- Qt 进程 QProcess
- QT新建进程 QProcess
- Qt 进程 QProcess
- windows下批量杀死进程
- 工作中关于QT在Windows下QProcess类的与adb使用总结《记录经验》
- Windows 下 Delphi 程序杀死其它进程和自杀
- ,在windows7下杀死进程
- windows下,通过进程名杀死进程
- QProcess中的start和startDetached两种启动方式的区别
- 初识Mybatis
- jsp的四个作用域1
- mybatis上课内容
- 在Delphi中制作以浏览器为界面的程序
- CSS盒模型(margin、padding、border)
- Qt在windows下杀死进程:QProcess和系统API两种方式
- MFC对话框里利用CHtmlView加载界面(一)————加载网页
- windows 设置路由表
- Python自动操作脚本
- Unity事件系统实现uGUI Button长按
- 数据结构总结目录
- 文件系统管理相关命令
- python学习日志--day8
- BZOJ 3262 陌上花开 [树套树]