EnumProcess 或 CreateToolhelp32Snapshot 函数帮助我们获取进程信息,包括进程 ID。
但我想知道获取当前进程的线程 ID 列表。
DWORD GetMainThreadId(DWORD pId)
{
LPVOID lpThId;
_asm
{
mov eax, fs:[18h]
add eax, 36
mov [lpThId], eax
}
HANDLE hProcess = OpenProcess(PROCESS_VM_READ, FALSE, pId);
if(hProcess == NULL)
return NULL;
DWORD tId;
if(ReadProcessMemory(hProcess, lpThId, &tId, sizeof(tId), NULL) == FALSE)
{
CloseHandle(hProcess);
return NULL;
}
CloseHandle(hProcess);
return tId;
}
此代码用于获取主线程 id,但我想获取其他线程模块并终止它,但主线程除外。
有没有api函数或方法?
我的操作系统:Windows 7 Ultimate
开发工具:Visual Studio 2008