我想获得一个进程的主线程ID,我看到有两种方法:
首先使用threadID = GetWindowThreadProcessId(hWnd,NULL),其中hWnd是我们想要的进程句柄
第二是使用
_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;
ReadProcessMemory(hProcess, lpThId, &tId, sizeof(tId), NULL) == FALSE)
那有什么区别?
答案 0 :(得分:2)
来自MSDN GetWindowThreadProcessId:
检索创建指定窗口的线程的标识符,以及(可选)创建窗口的进程的标识符。
它与TIB无关。不同之处在于这两个是不同的标识符,可能是巧合的。