如何分别列出指定进程的所有线程

来源:百度知道 编辑:UC知道 时间:2024/06/18 07:36:43
要求 我指定一个线程 例如:记事本程序
然后能列出该进程中的所有线程

能否用 VC++或WIN32给我写给例子看看?

谢谢。。。。

遍历指定进程的所有线程

#define NO_WIN32_LEAN_AND_MEAN

#include <tlhelp32.h>

int GetProcessThreadList(DWORD th32ProcessID) //进程的ID
{
HANDLE hThreadSnap;
THREADENTRY32 th32;

hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, th32ProcessID);

if (hThreadSnap == INVALID_HANDLE_VALUE)
{
return 1;
}

th32.dwSize = sizeof(THREADENTRY32);
if (!Thread32First(hThreadSnap, &th32))
{
CloseHandle(hThreadSnap);
return 1;
}

do
{
if (th32.th32OwnerProcessID == th32ProcessID)
{
printf("ThreadID: %ld\n", th32.th32ThreadID); //显示找到的线程的ID
}
}while(Thread32Next(hThreadSnap, &th32));

CloseHandle(hThreadSnap);
return 0;
}

大哥,你的问题写错了。

DWORD GetWindowThreadProcessId( HWND hWnd,
LPDWORD lpdwProcessId
);
通过 hwnd窗口句柄,得到当前窗口所在的线程和进程的ID(不是句柄)。
hWnd,为窗口句柄,也就是