Рейтинг:
0
Michael Haephrati
Следующий код находит дескрипторы всех окон для данного PID.
void GetAllWindowsFromProcessID(DWORD dwProcessID, std::vector <HWND> &vhWnds)
{
// find all hWnds (vhWnds) associated with a process id (dwProcessID)
HWND hCurWnd = NULL;
do
{
hCurWnd = FindWindowEx(NULL, hCurWnd, NULL, NULL);
DWORD dwProcessID = 0;
GetWindowThreadProcessId(hCurWnd, &dwProcessID);
if (dwProcessID == dwProcessID)
{
vhWnds.push_back(hCurWnd); // add the found hCurWnd to the vector
wprintf(L"Found hWnd %d\n", hCurWnd);
}
}
while (hCurWnd != NULL);
}
Richard Deeming
Почему вы задали этот вопрос, если уже знали ответ?
Michael Haephrati
В этом нет ничего плохого. Цель Q&A состоит в том, чтобы публиковать вопросы, пока они еще не опубликованы, на благо всего сообщества. В следующий раз, когда кто-то будет искать этот вопрос, он его найдет, и хотя я опубликовал свое собственное решение, я не отметил, что вопрос решен и ждет других решений (может быть, лучше, чем мое).
Richard Deeming
Нет. Цель QA-попросить помощи, чтобы ответить на вопрос, на который вы еще не знаете ответа.
Если вы придумали решение, которое, по вашему мнению, принесет пользу обществу, то опубликуйте его в качестве подсказки[^].