无法从 C/C++ 代码中单击鼠标

Unable to click my mouse from C/C++ code

本文关键字:代码 单击 鼠标 C++      更新时间:2023-10-16

我正在尝试通过键盘控制鼠标。为此,我使用两个头文件:-

#include <conio.h>
#include <windows.h>

获取我调用的当前位置

POINT p;
GetCursorPos(&p);

要向右移动光标,我调用

 p.x += 10;

为了将光标移动到所有其他方向上,我使用的方法就像上面一样。到现在为止,一切都很好。但是我不知道如何从我的代码中左键单击鼠标。所以请告诉我任何方法都可以做到这一点

得到我的答案,这是左键单击的功能:-

void LeftClick ( )
{  
  INPUT    Input={0};
  // left down 
  Input.type      = INPUT_MOUSE;
  Input.mi.dwFlags  = MOUSEEVENTF_LEFTDOWN;
  ::SendInput(1,&Input,sizeof(INPUT));
  // left up
  ::ZeroMemory(&Input,sizeof(INPUT));
  Input.type      = INPUT_MOUSE;
  Input.mi.dwFlags  = MOUSEEVENTF_LEFTUP;
  ::SendInput(1,&Input,sizeof(INPUT));
}

无论如何,感谢大家的帮助。

在 Win32 控制台应用程序中,可以通过 ReadConsoleInput 读取鼠标状态。 它填充了一系列INPUT_RECORD结构,其中包括鼠标状态。

以下是其使用示例: http://blogs.msdn.com/b/oldnewthing/archive/2013/05/06/10416225.aspx

请注意,作为低级控制台 I/O 命令,它可能会干扰更高级别的 I/O,例如 conio 或 stdio。 您应该通过此功能处理所有控制台I/O以避免这种情况?