我想知道您是否可以将句柄转换为窗口“HWND”。我需要使用“FindWindow”方法调用“PostMessage”函数。

我目前必须采购

HANDLE mainProcess;
BOOL APIENTRY ATTACH_PROCESS(int ProcessID)
{

    mainProcess = OpenProcess(PROCESS_ALL_ACCESS, true, ProcessID);

    return TRUE;
}
BOOL APIENTRY SEND_INPUT(/*NOT USED FOR THIS SAMPLE*/ const char* String, bool Keydown)
{

    int ToDo = WM_KEYUP;
    if (Keydown)
        ToDo = WM_KEYDOWN;
    return PostMessage((HWND)mainProcess, ToDo, VK_TAB, NULL);
}

最佳答案

使用mainProcess句柄调用GetProcessId()以获取ProcessID。

调用EnumWindows()

对于每个窗口,调用GetWindowThreadProcessId()以获取与该窗口关联的进程的ProcessId。

比较ProcessID是否匹配-您已找到所需的HWND。

这是一项比较昂贵的任务,因此最好先找到想要的hwnd并将其存储起来。

10-06 03:32