【发布时间】:2020-06-30 21:10:30
【问题描述】:
我有以下 cpp 脚本:
INPUT Inputs[3] = { 0 };
Inputs[0].type = INPUT_MOUSE;
Inputs[0].mi.dx = 0;
Inputs[0].mi.dy = 0;
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));
它应该模拟鼠标按下,它可以工作,但它也总是将光标移动到特定位置,即使我没有这个
Inputs[0].mi.dx = 0;
Inputs[0].mi.dy = 0;
部分。我希望它只是单击而不是移动光标
【问题讨论】:
-
您使用的是什么操作系统?你用的是什么框架?更多标签会引起关注。
-
发布一个最小的可重现代码将为您提供帮助,而不仅仅是眼睛。
-
如果您不想移动光标,为什么还要输入第一个
MOUSEEVENTF_MOVE? -
如果你想点击一个按钮,但不移动鼠标光标,你可以考虑向你想点击的控件发送一条windows消息,而不是模拟输入。
-
如果不想移动光标,就不要指定
MOUSEEVENTF_MOVE,就这么简单。
标签: windows winapi input simulate