windows环境下根据进程名杀死进程 并重新拉起
2021/7/16 7:05:51
本文主要是介绍windows环境下根据进程名杀死进程 并重新拉起,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <Tlhelp32.h> #include <windows.h> #include <tlhelp32.h> #include "psapi.h" #include <Tlhelp32.h> void terminateMYSQL() { HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //现在我们获得了所有进程的信息。 //将从hSnapShot中抽取数据到一个PROCESSENTRY32结构中 //这个结构代表了一个进程,是ToolHelp32 API的一部分。 //抽取数据靠Process32First()和Process32Next()这两个函数。 //这里我们仅用Process32Next(),他的原形是: //BOOL WINAPI Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe); //我们程序的代码中加入: PROCESSENTRY32* processInfo=new PROCESSENTRY32; // 必须设置PROCESSENTRY32的dwSize成员的值 ; processInfo->dwSize=sizeof(PROCESSENTRY32); int index=0; //这里我们将快照句柄和PROCESSENTRY32结构传给Process32Next()。 //执行之后,PROCESSENTRY32 结构将获得进程的信息。我们循环遍历,直到函数返回FALSE。 //printf("****************开始列举进程****************/n"); int ID = 0; while(Process32Next(hSnapShot,processInfo)!=FALSE) { index++; //printf("****************** %d ******************/n",index); //printf("PID Name Current Threads/n"); //printf("%-15d%-25s%-4d/n",processInfo->th32ProcessID,processInfo->szExeFile,processInfo->cntThreads); 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,"mysqld.exe"))//使用这段代码的时候只需要改变".exe".将其改成你要结束的进程名就可以了。 { ID = processInfo->th32ProcessID; // qDebug()<<"ID ="<<ID; HANDLE hProcess; // 现在我们用函数 TerminateProcess()终止进程: // 这里我们用PROCESS_ALL_ACCESS hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,ID); //if(hProcess==NULL) //{ // printf("Unable to get handle of process: "); // printf("Error is: %d",GetLastError()); //} TerminateProcess(hProcess,0); CloseHandle(hProcess); } } } CloseHandle(hSnapShot); delete processInfo; } QString Exe_Path = cfg.getSet()->value("EXE_PATH").toString(); QProcess *process =new QProcess(this); process->start(Exe_Path); if(!process->waitForStarted()) { return; }; QString strResult = QString::fromLocal8Bit(process->readAllStandardOutput());这篇关于windows环境下根据进程名杀死进程 并重新拉起的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API