Enum Windows hwnd, возвращающий тот же идентификатор процесса - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь использовать Enum Windows, чтобы получить окно для моего текущего идентификатора процесса. Но каждое окно в перечислении имеет один и тот же идентификатор процесса, и оно завершает перечисление перед тем, как найти совпадение.

У hwnd есть разные адреса памяти при каждом перечислении, но идентификатор процесса всегда одинаков.

#include <Windows.h>

HWND g_HWND = NULL;

BOOL CALLBACK EnumWindowsProcMy(HWND hwnd, LPARAM lParam)
{
    DWORD dwProcessId;
    GetWindowThreadProcessId(hwnd, &dwProcessId); //dwProcessId is always the same
    if (dwProcessId == lParam)
    {
        g_HWND = hwnd;
        return FALSE;
    }
    return TRUE;
}

int main()
{
    DWORD my_pid = GetCurrentProcessId();
    bool b = EnumWindows(EnumWindowsProcMy, my_pid);

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...