Вы можете вызвать EnumWindows () , чтобы перебрать все окна верхнего уровня на экране, а затем использовать GetWindowThreadProcessId () , чтобы выяснить, какие из них принадлежат вашему процессу.
Например, что-то вроде:
BOOL CALLBACK ForEachTopLevelWindow(HWND hwnd, LPARAM lp)
{
DWORD processId;
GetWindowThreadProcessId(hwnd, &processId);
if (processId == (DWORD) lp) {
// `hwnd` belongs to the target process.
}
return TRUE;
}
VOID LookupProcessWindows(DWORD processId)
{
EnumWindows(ForEachTopLevelWindow, (LPARAM) processId);
}