GetProcessIDByName

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;
}
posted @ 2008-09-27 14:34  ahuo  阅读(1210)  评论(0编辑  收藏  举报