根据进程名称杀死指定进程
2016-09-07 11:06
501 查看
// KillProcess.cpp : 根据进程名称杀死指定进程 // #include "stdafx.h" #include "KillProcess.h" #include "tlhelp32.h" #include <atlstr.h> BOOL KillProcessFromName(CString strProcessName); int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); KillProcessFromName(_T("360MobileMgr.exe")); return 0; } //kill进程from名字 BOOL KillProcessFromName(CString strProcessName) { //创建进程快照(TH32CS_SNAPPROCESS表示创建所有进程的快照) HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //PROCESSENTRY32进程快照的结构体 PROCESSENTRY32 pe; //实例化后使用Process32First获取第一个快照的进程前必做的初始化操作 pe.dwSize = sizeof(PROCESSENTRY32); //下面的IF效果同: //if(hProcessSnap == INVALID_HANDLE_VALUE) 无效的句柄 if(!Process32First(hSnapShot,&pe)) { return FALSE; } //将字符串转换为小写 strProcessName.MakeLower(); //如果句柄有效 则一直获取下一个句柄循环下去 while (Process32Next(hSnapShot,&pe)) { //pe.szExeFile获取当前进程的可执行文件名称 CString scTmp = pe.szExeFile; //将可执行文件名称所有英文字母修改为小写 scTmp.MakeLower(); //比较当前进程的可执行文件名称和传递进来的文件名称是否相同 //相同的话Compare返回0 if(!scTmp.Compare(strProcessName)) { //从快照进程中获取该进程的PID(即任务管理器中的PID) DWORD dwProcessID = pe.th32ProcessID; HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessID); ::TerminateProcess(hProcess,0); CloseHandle(hProcess); scTmp.ReleaseBuffer(); strProcessName.ReleaseBuffer(); return TRUE; } scTmp.ReleaseBuffer(); } strProcessName.ReleaseBuffer(); return FALSE; }
相关文章推荐
- android 根据进程名杀死指定、特定进程
- 一行shell命令杀死指定进程名称的进程方法
- 杀死指定进程名称的小VBS
- 杀死指定进程名称的小VBS
- linux:根据名称杀死进程
- linux 杀死指定名称进程
- 如何用shell脚本杀死指定名称的进程
- linux使用脚本杀死指定名称的进程[zl]
- 根据进程名称杀死多个进程
- 遍历系统中的所有进程,根据szName杀死指定的程序
- 杀死指定进程名称的小VBS
- linux使用脚本杀死指定名称的进程
- 杀死指定名称的进程(C++)
- shell 杀死指定进程名称的进程方法
- 转:shell杀死指定名称的进程
- linux使用脚本杀死指定名称的进程
- 杀死进程名中含有指定字符串的进程
- linux下怎么根据端口号杀死进程
- shell脚本按照进程名称杀死进程
- windows查看指定端口进程以及杀死命令