int GetProcessIDByName(char* pname)
{
HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
SHFILEINFO shSmall;
BOOL Status=FALSE;
PROCESSENTRY32 ProcessInfo;//声明进程信息变量
DWORD pid=0;
if(SnapShot==NULL)
{
return -1;
}
ProcessInfo.dwSize=sizeof(ProcessInfo);//设置ProcessInfo的大小
//返回系统中第一个进程的信息
Status=Process32First(SnapShot,&ProcessInfo);
while(Status)
{
//获取进程文件信息
SHGetFileInfo(ProcessInfo.szExeFile,0,&shSmall,
sizeof(shSmall),SHGFI_ICON|SHGFI_SMALLICON);
//在列表控件中添加映像名称
if (StrStrI(ProcessInfo.szExeFile,pname)!=NULL)
{
pid=ProcessInfo.th32ProcessID;
break;
}
//获取下一个进程的信息
Status=Process32Next(SnapShot,&ProcessInfo);
}
return pid;
}