如题,以下代码可以取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
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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货