环境:PC Win7 VS
VC++ 、MFC
使用,输入文件名即可获取程序的pid,进而可以对程序进行操作,比如关闭Porcess等。
头文件:
#include <TlHelp32.h>
DWORD *****::GetProcessIdFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id = ;
//请参考msdn,主要是获得windows当前的任务的一个snap(快照)。
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,);
pe.dwSize = sizeof(PROCESSENTRY32);
//检索上一步获得的windows的快照的每个进程。First ,next 函数
if(!Process32First(hSnapshot,&pe))
return ;
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(),name2.GetBuffer()) == )
{
//记下这个ID,也及时我们要得到的进程的ID
id = pe.th32ProcessID;
break;
} if(Process32Next(hSnapshot,&pe)==FALSE)
break;
} while();
CloseHandle(hSnapshot);
return id;
}