Winapi MOUSEEVENTF#u绝对不';行不通

Winapi MOUSEEVENTF#u绝对不';行不通,winapi,Winapi,我想让我的程序点击特定的鼠标坐标,所以我使用 mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, point.x, point.y, 0, 0); 其中,点.x和点.y在0和65535之间标准化。 但是,它总是单击光标所在的位置,而不是我传递的坐标。为什么会发生这种情况?您可能缺少MOUSEEVENTF\u MOVE标志 如果这不起作用-我建议您使用SetCursorPos()来设置位置。然后,您的鼠标移动事件应该可以正常工作。模拟

我想让我的程序点击特定的鼠标坐标,所以我使用

mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, point.x, point.y, 0, 0);
其中,点.x和点.y在0和65535之间标准化。
但是,它总是单击光标所在的位置,而不是我传递的坐标。为什么会发生这种情况?

您可能缺少
MOUSEEVENTF\u MOVE
标志


如果这不起作用-我建议您使用
SetCursorPos()
来设置位置。然后,您的
鼠标移动
事件应该可以正常工作。

模拟所有鼠标事件

mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, point.x, point.y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

就是这样,我不想移动鼠标。我想单击鼠标不在的地方。@xytor在这种情况下,鼠标事件不是您想要的。相反,您应该在要单击的位置找到窗口句柄,并通过SendMessage向该窗口发送WM_LBUTTONDOWN和WM_LBUTTONUP事件。我希望在不同的位置单击而不将鼠标移到那里。@xytor您可以在之后立即将其移回。使用
GetCursorPos()