如题,以下代码可以取ID但不知何挂起:
procedure TForm1.Button6Click(Sender: TObject);
var   lppe:Tprocessentry32;
          hh,tt:Thandle;
          tppe:TThreadEntry32;
          PId:Dword;
          hthread:Dword;
  begin
          hh:=createtoolhelp32snapshot(TH32CS_SNAPPROCESS,0);
          lppe.dwsize:=sizeof(lppe);
          tppe.dwsize:=sizeof(tppe);
          if   process32first(hh,lppe)   then
              repeat
              pid:=lppe.th32ProcessID;
                     // listbox1.items.add(format('<%x>%s',[pid,extractfilename(lppe.szExeFile)]));
                    if  extractfilename(lppe.szExeFile)='c.exe' then
                    begin
                      tt:=createtoolhelp32snapshot(TH32CS_SNAPTHREAD,0);
                      if   thread32first(tt,tppe)   then
                      repeat
                            if   tppe.th32OwnerProcessID=pid   then
                           //    hthread:=OpenThread($2, FALSE, tppe.th32ThreadID);
                             //   SuspendThread(hThread);                                  listbox1.items.add(format('     theadid:<%x>',[tppe.th32ThreadID]));                      until   not   thread32next(tt,tppe);
                      closehandle(tt);
                    end;
              until   not   process32next(hh,lppe);
          CloseHandle(hh);
          edit1.text:=inttostr(listbox1.items.count);end;
thread