環境:PC Win7 VS
VC++ 、MFC
使用,輸入文件名即可獲取程序的pid,進而可以對程序進行操作,比如關閉Porcess等。
頭文件:
#include <TlHelp32.h>
DWORD *****::GetProcessIdFromName(LPCTSTR name) { PROCESSENTRY32 pe; DWORD id = 0; //請參考msdn,主要是獲得windows當前的任務的一個snap(快照)。 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); pe.dwSize = sizeof(PROCESSENTRY32); //檢索上一步獲得的windows的快照的每個進程。First ,next 函數 if(!Process32First(hSnapshot,&pe)) return 0; CString name1,name2; do { pe.dwSize = sizeof(PROCESSENTRY32); name1=pe.szExeFile; name2=name; name1.MakeUpper(); name2.MakeUpper(); //其中參數pe里面有進程信息如name,即在任務管理器里面看到的名字,如qq.exe if(strcmp(name1.GetBuffer(0),name2.GetBuffer(0)) == 0) { //記下這個ID,也及時我們要得到的進程的ID id = pe.th32ProcessID; break; } if(Process32Next(hSnapshot,&pe)==FALSE) break; } while(1); CloseHandle(hSnapshot); return id; }
