无法通过 C/C++ 代码单击我的鼠标
Unable to click my mouse from C/C++ code
我想通过键盘控制我的鼠标。为此,我使用了两个头文件:-
#include <conio.h>
#include <windows.h>
为了得到我打电话的当前位置
POINT p;
GetCursorPos(&p);
要向右移动光标,我调用
p.x += 10;
为了在所有其他方向上移动我的光标,我使用方法就像 above.Till 现在一切都很好。但我不知道如何从我的代码中左键单击我的鼠标。所以请告诉我任何方法
在 Win32 控制台应用程序中,可以通过 ReadConsoleInput. It fills an array of INPUT_RECORD 结构读取鼠标状态,其中包含鼠标状态。
这是一个使用示例:http://blogs.msdn.com/b/oldnewthing/archive/2013/05/06/10416225.aspx
请注意,作为低级控制台 I/O 命令,它可能会干扰更高级别 I/O,例如 conio 或 stdio。您应该通过此功能处理所有控制台 I/O 以避免这种情况?
得到我的答案,这是左键单击的功能:-
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));
}
总之谢谢你们的帮助。
我想通过键盘控制我的鼠标。为此,我使用了两个头文件:-
#include <conio.h>
#include <windows.h>
为了得到我打电话的当前位置
POINT p;
GetCursorPos(&p);
要向右移动光标,我调用
p.x += 10;
为了在所有其他方向上移动我的光标,我使用方法就像 above.Till 现在一切都很好。但我不知道如何从我的代码中左键单击我的鼠标。所以请告诉我任何方法
在 Win32 控制台应用程序中,可以通过 ReadConsoleInput. It fills an array of INPUT_RECORD 结构读取鼠标状态,其中包含鼠标状态。
这是一个使用示例:http://blogs.msdn.com/b/oldnewthing/archive/2013/05/06/10416225.aspx
请注意,作为低级控制台 I/O 命令,它可能会干扰更高级别 I/O,例如 conio 或 stdio。您应该通过此功能处理所有控制台 I/O 以避免这种情况?
得到我的答案,这是左键单击的功能:-
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));
}
总之谢谢你们的帮助。