Windows查找和结束指定进程
2012-10-23 20:18
525 查看
做项目时需要根据名称来查找指定进程是否存在,以及结束指定进程,尝试了下可以用如下代码实现:
注:需要包含头文件"tlhelp32.h"
注:需要包含头文件"tlhelp32.h"
/************************************************************************/ // 功能:使用枚举进程的方法查找及结束指定名称的进程 // 作者:jovenchen // 日期:2012-10-23 20:24:09 /************************************************************************/ /** * @brief 查找指定进程是否存在 * @param szProcessName 进程名称 * @param pe 存放进程信息的结构体 * @return bool 是否存在 */ bool FindProcessByName(const char* szProcessName, PROCESSENTRY32& pe) { PROCESSENTRY32 lpe = { sizeof(PROCESSENTRY32) }; //创建进程快照 HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (INVALID_HANDLE_VALUE == hProcess) { return false; } //获取第一个进程实例 BOOL isExist = Process32First(hProcess, &lpe); //遍历进程 while (isExist) { if (!strcmp(lpe.szExeFile, szProcessName)) { CloseHandle(hProcess); memcpy(&pe, &lpe, sizeof(PROCESSENTRY32)); return true; } isExist = Process32Next(hProcess, &lpe); } CloseHandle(hProcess); return false; } /** * @brief 重命名文件 * @param strSrcName 原文件名 * @param strDestName 新文件名 * @return bool 返回是否成功 */ bool KillProcess(const char* szProcessName) { PROCESSENTRY32 pe; HANDLE hProcess; if (FindProcessByName(szProcessName, pe)) { hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID); if (!TerminateProcess(hProcess, 0)) { return false; } CloseHandle(hProcess); } return true; }
相关文章推荐
- 利用命令提示符 - 强制结束指定Windows 7进程
- 结束指定的windows进程
- Windows下查看端口及查找端口并结束占用的进程
- windows 通过端口号来查找未结束的tomcat等web容器进程
- windows查看被占用端口,结束指定进程
- windows 命令方式查找指定IP的MAC地址
- 根据进程名,查找并结束进程
- Windows使用Java调用taskkill命令结束进程
- windows下如何查看某个端口被谁占用并结束掉该进程
- Windows 查看哪个进程在使用指定的文件 - 文件被占用,无法删除
- Windows下的c++写的主进程调用Rscripte.exe子进程[进程结束的问题]
- windows下查看端口占用并结束进程
- 在Windows7下强制结束进程命令
- 查找指定进程
- windows 查看监听指定端口号的进程id
- 在cmd中查看进程并结束指定的进程
- windows下查找并kill掉进程
- C#得到系统进程和结束某个指定的进程
- Windows中根据端口号或PID查看进程、结束进程方法
- 得到系统进程和结束某个指定的进程