delphi挂起一个进程中的线程
以下代码可以取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;
SuspendThread
|