C++通过进程名获取进程句柄

来源:互联网 发布:程序员网站 编辑:程序博客网 时间:2024/05/06 10:22
记录下一段,比较常用的代码。
// 强杀定期删除进程void CDogThread::Quit(){// 结束强杀定期删除进程HANDLE hProcess = GetProcessHandle(L"LdFileOnTimeDel.exe");if (hProcess != NULL){TerminateProcess(hProcess, 0);}}//通过进程ID获取进程句柄HANDLE CDogThread::GetProcessHandle(int nID){return OpenProcess(PROCESS_TERMINATE, FALSE, nID);}//通过进程名获取进程句柄HANDLE CDogThread::GetProcessHandle(LPCWSTR lpName){HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (INVALID_HANDLE_VALUE == hSnapshot) {return NULL;}PROCESSENTRY32 pe = { sizeof(pe) };BOOL fOk;for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)) {if (!_tcscmp(pe.szExeFile, lpName)) {CloseHandle(hSnapshot);return GetProcessHandle(pe.th32ProcessID);}}return NULL;}
该代码功能:强杀某个进程,采用TerminateProcess(hProcess, 0);此时需要获取的就是hProcess的进程句柄,采用的方式就是遍历进程名进行匹配。
0 0
原创粉丝点击