首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

挂起一个历程中的线程

2013-02-27 
挂起一个进程中的线程如题,以下代码可以取ID但不知何挂起:procedure TForm1.Button6Click(Sender: TObject

挂起一个进程中的线程
如题,以下代码可以取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
[解决办法]
MSDN搜索
SuspendThread

热点排行