//根據進程名獲取PID DWORD CBiaoBai1Dlg::GetProcessIdByProcessName(char* pszProcessName) { //1.創建進程快照 HANDLE hSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, //遍歷進程快照1 0); //進程PID if (INVALID_HANDLE_VALUE == hSnap) { MessageBox("創建進程快照失敗!"); return 0; } //2.獲取第一條進程快照信息 PROCESSENTRY32 stcPe = { sizeof(stcPe) }; if (Process32First(hSnap, &stcPe)) { //3.循環遍歷進程Next do { //獲取快照信息 USES_CONVERSION; CString ProcessName = A2T(pszProcessName); if (!lstrcmp(stcPe.szExeFile, ProcessName)) { //4.關閉句柄 CloseHandle(hSnap); return stcPe.th32ProcessID; } } while (Process32Next(hSnap, &stcPe)); } //4.關閉句柄 CloseHandle(hSnap); return 0; }