C++通過程序名獲取程序控制代碼
阿新 • • 發佈:2019-01-10
記錄下一段,比較常用的程式碼。
該程式碼功能:強殺某個程序,採用TerminateProcess(hProcess, 0);此時需要獲取的就是hProcess的程序控制代碼,採用的方式就是遍歷程序名進行匹配。// 強殺定期刪除程序 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; }