Win32:如何枚举属于C ++进程的所有线程?

时间:2011-12-21 07:51:13

标签: c++ multithreading winapi process

  

可能重复:
  Enumerating threads in Windows

我试图枚举属于Win32 Window进程的所有线程。

我知道我可以像这样获得进程ID:

PDWORD procId;
GetWindowThreadProcessId(hwnd, procId);

而且我知道整个事情可以用C#来完成:

// get process that owns the taskbar window
int procId;
GetWindowThreadProcessId(hwnd, out procId);

Process p = Process.GetProcessById(procId);
if (p != null)
{
    foreach (ProcessThread t in p.Threads)
    {
        ...
    }
}

但据我所知,Process类是一个.NET类(请纠正我,如果我错了),我正努力避免.NET依赖。 (阅读:请不要告诉我只使用.NET。)

所以问题是:假设我已正确检索PID,是否存在Win32等效项?

(作为旁注,我看到了另一个问题中引用的Tool Help Library,但不确定这是最好的选择。如果是,可以给出简要解释/演示如何实现这一目标或将我引导到别人的身上?)

与往常一样,非常感谢所有的帮助。

1 个答案:

答案 0 :(得分:3)