首页
社区
课程
招聘
如何将一个进程中除自身以外的所有线程全部挂起?
发表于: 2005-7-10 10:05 6987

如何将一个进程中除自身以外的所有线程全部挂起?

2005-7-10 10:05
6987
如何将一个进程中除自身以外的所有线程全部挂起?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 228
活跃值: (85)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
以 delphi 为例

procedure THook.setThreads(state: Boolean);
var
  pid, tid: DWORD;
  hsnap, hthread: DWORD;
  te: TThreadEntry32;
begin
  pid := GetCurrentProcessId;
  tid := GetCurrentThreadId;
  hsnap := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
  if hsnap = 0 then
    Exit;
  te.dwSize := SizeOf(te);
  if Thread32First(hsnap, te) then begin
    repeat
      if (te.th32OwnerProcessID = pid) and (te.th32ThreadID <> tid) then begin
        hthread := OpenThread(THREAD_SUSPEND_RESUME, False, te.th32ThreadID);
        if not state then
          SuspendThread(hthread)
        else
          ResumeThread(hthread);
        CloseHandle(hthread);
      end;
    until not Thread32Next(hsnap, te);
  end;
  CloseHandle(hsnap);
end;

setThread(False);
除自身外,扼起所有 Threads

setThread(True);
除自身外,恢复所有 Threads 运行
2005-7-28 08:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看看~~~~~~~~~
2005-7-29 13:16
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶一下  有空看看
2009-5-18 06:48
0
雪    币: 5279
活跃值: (3659)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
5
正好用上,试一下
2010-6-1 16:24
0
游客
登录 | 注册 方可回帖
返回
//