[经验总结]Windows中关闭进程的C++实现
2009-12-20 21:56
295 查看
// [Added by thinkhy 09/12/20] // Description: Kill process(es) by PID. // Reference: http://www.vckbase.com/document/viewdoc/?id=1882 // RETVALUE: SUCCESS TRUE // FAILED FALSE BOOL CProcessTool::KillProcess(DWORD dwPid) { HANDLE hPrc; if( 0 == dwPid) return FALSE; hPrc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwPid); // Opens handle to the process. if( !TerminateProcess(hPrc,0) ) // Terminates a process. { CloseHandle( hPrc ); return FALSE; } else WaitForSingleObject(hPrc, DELAYTIME); // At most ,waite 2000 millisecond. CloseHandle(hPrc); return TRUE; } // [Added by thinkhy 09/12/20] // Description: Kill process(es) by Name. // Reference: http://bbs.51testing.com/thread-65884-1-1.html // RETVALUE: SUCCESS TRUE // FAILED FALSE BOOL CProcessTool::KillProcessByName(const TCHAR *lpszProcessName) { unsigned int pid = -1; BOOL retval = TRUE; if (lpszProcessName == NULL) return -1; DWORD dwRet = 0; HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS,0 ); PROCESSENTRY32 processInfo; processInfo.dwSize = sizeof( PROCESSENTRY32 ); int flag = Process32First( hSnapshot, &processInfo ); // Find the process with name as same as lpszProcessName while (flag != 0) { if (_tcscmp(processInfo.szExeFile, lpszProcessName) == 0) { // Terminate the process. pid = processInfo.th32ProcessID; HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid); if (TerminateProcess(hProcess, 0) != TRUE) { // Failed to terminate it. retval = FALSE; break; } } flag = Process32Next(hSnapshot, &processInfo); } // while (flag != 0) CloseHandle(hSnapshot); if (pid == -1) return FALSE; return retval; }
相关文章推荐
- C++实现RTTI具体操作经验总结
- C++实现Windows下的Daemon,监控多个进程
- C/C++,Windows/MFC, char, wchar_t, TCHAR 字符全总结 & c++字符串操作经验集
- [经验总结] 在Windows平台基于libxml+libxslt实现Schema模式验证与XSLT模板转换
- [经验总结]获取Windows程序出错原因的C++代码
- Windows编程之进程遍历(C++实现)
- 【笔记】C++ (仅使用一维数组,不用blas)实现 logistic regression代码错误经验总结, 数据集为mnist手写体数字
- 基于visual c++之windows核心编程代码分析(53)在C++中嵌入汇编实现DLL注入源代码
- windows下bat批处理实现守护进程(有日志)
- windows 版 svn 服务器 安装及经验总结 按照步骤即可。
- Android、Windows、Linux下实现c++与java交互
- C#启动Windows服务及关闭实例实现
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- C#实现启动,关闭与查找进程的方法
- 用C++实现HTTP服务器 - Windows平台(开放源代码)
- C++容器使用经验总结
- windows环境下unicode编程总结c++/vc
- Windows 文件过滤驱动经验总结
- windows下bat批处理实现守护多个进程