国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

Qt / C++ 如何關閉外部進程

2019-11-06 06:58:56
字體:
來源:轉載
供稿:網友

轉載自:http://bbs.csdn.net/topics/390813863


其實這個 Qt 本身木有一毛錢關系,枚舉進程的話,Win32 有 API 可以做這些事情:

CreateToolhelp32Snapshot() / PRocess32First()/Process32Next() #include <windows.h>#include <Tlhelp32.h>#include <stdio.h>#include <winnt.h>void EditTaggingTable::terminateExcel(){ 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。 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)) { //使用這段代碼的時候只需要改變"cmd.exe".將其改成你要結束的進程名就可以了。 if(strstr(ch,"EXCEL.EXE")) { ID = processInfo->th32ProcessID; HANDLE hProcess; // 現在我們用函數 TerminateProcess()終止進程,這里我們用PROCESS_ALL_access hProcess=OpenProcess(PROCESS_ALL_ACCESS,TRUE,ID); TerminateProcess(hProcess,0); CloseHandle(hProcess); } } } CloseHandle(hSnapShot); delete processInfo;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 屯留县| 大姚县| 哈尔滨市| 怀远县| 珲春市| 平远县| 大悟县| 财经| 平阳县| 荆门市| 佛冈县| 宜川县| 宝兴县| 彝良县| 黄大仙区| 牡丹江市| 游戏| 武陟县| 濮阳市| 景泰县| 河曲县| 衡阳市| 花莲市| 六枝特区| 兴业县| 沧源| 哈尔滨市| 阳原县| 塔河县| 上栗县| 政和县| 汨罗市| 分宜县| 阿克苏市| 新竹市| 梓潼县| 孟连| 桦川县| 衡东县| 曲靖市| 北海市|