如何发送鼠标点击?

时间:2015-02-07 18:51:38

标签: c++ winapi sendmessage

我需要编写一个点击Windows的应用程序。

如何将左键单击发送到窗口所在的某个屏幕x / y坐标?

2 个答案:

答案 0 :(得分:5)

使用SendInput()功能:

INPUT Inputs[3] = {0};

Inputs[0].type = INPUT_MOUSE;
Inputs[0].mi.dx = ...; // desired X coordinate
Inputs[0].mi.dy = ...; // desired Y coordinate
Inputs[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;

Inputs[1].type = INPUT_MOUSE;
Inputs[1].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;

Inputs[2].type = INPUT_MOUSE;
Inputs[2].mi.dwFlags = MOUSEEVENTF_LEFTUP;

SendInput(3, Inputs, sizeof(INPUT));

在多监视器环境中使用dx时,请务必阅读MOUSEINPUT documentation中有关如何正确指定dyMOUSEEVENTF_ABSOLUTE的评论。

答案 1 :(得分:-1)

您可以使用mouse_event功能点击(x,y):

mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);