postmessage到qt窗口没有生效

时间:2018-01-12 12:00:41

标签: c++ qt postmessage

这是Windows平台上的一个问题。我的窗户赢了10 64位。 我有一个qt应用程序,可以通过findwindow找到窗口。然后我使用另一个进程的postmessage模拟鼠标点击qt窗口,但这不会生效。我的代码如下。

void SimuClick(HWND hwnd, int x, int y)
{
    LPARAM point = MAKELPARAM(x, y);
    ::PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, point);
    ::PostMessage(hwnd, WM_LBUTTONUP, 0, point);
}

更多详情:

  1. 代码在其他窗口生效
  2. 当我使用鼠标点击qt窗口时。我可以使用spy ++观看发布到qt窗口的WM_LBUTTONDOWN和WM_LBUTTONUP消息
  3. qt窗口有WS_POPUP | WS_CAPTION | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX样式

1 个答案:

答案 0 :(得分:1)

最后,我发现问题是什么。 Windows UIPI限制阻止我的消息发布到目标进程,因为目标进程具有比我的更高的权限。我应该在链接步骤中将清单中的uiAccess设置为true。