-2

1 つのプロセスのメイン スレッド ID を取得したいのですが、2 つの方法があることがわかります。

最初に、threadID=GetWindowThreadProcessId(hWnd,NULL) を使用します。hWnd は、必要なプロセスのハンドルです。

2番目は使用しています

_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)

違いは何ですか?

4

1 に答える 1

2

MSDN GetWindowThreadProcessIdから:

指定されたウィンドウを作成したスレッドの識別子と、オプションでウィンドウを作成したプロセスの識別子を取得します。

TIBとは関係ありません。違いは、これら 2 つは異なる ID であり、偶然にも同じである可能性があることです。

于 2013-01-05T12:12:00.040 に答える