C 句柄到窗口句柄

C 句柄到窗口句柄,c,windows,winapi,C,Windows,Winapi,我尝试过使用“抓取桌面枚举的所有进程ID”方法,但是这不起作用 有没有办法将句柄转换为窗口句柄-或- 是否有方法获取进程ID并找出该进程生成的所有子窗口 由于存在多个进程问题,我不想使用FindWindow。您可以调用以迭代屏幕上的所有顶级窗口,然后使用查找属于您的进程的窗口 例如,类似于: BOOL CALLBACK ForEachTopLevelWindow(HWND hwnd, LPARAM lp) { DWORD processId; GetWindowThreadP

我尝试过使用“抓取桌面枚举的所有进程ID”方法,但是这不起作用

  • 有没有办法将句柄转换为窗口句柄-或-
  • 是否有方法获取进程ID并找出该进程生成的所有子窗口
由于存在多个进程问题,我不想使用
FindWindow

您可以调用以迭代屏幕上的所有顶级窗口,然后使用查找属于您的进程的窗口

例如,类似于:

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);
}