我已尝试使用“抓取桌面枚举的所有进程ID”方法,但这不起作用。
由于多个流程问题,我不想使用FindWindow
。
答案 0 :(得分:6)
您可以致电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);
}