1环境说明
2获取鼠标位置的接口
void GetMouseCurPoint()
{POINT mypoint;for (int i = 0; i < 100; i++){GetCursorPos(&mypoint);//获取鼠标当前所在位置printf("% ld, % ld \n", mypoint.x, mypoint.y);Sleep(1000);}
}
3操作鼠标左键和右键的接口
void MouseLeftDown()//鼠标左键按下
{INPUT Input = { 0 };Input.type = INPUT_MOUSE;Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;SendInput(1, &Input, sizeof(INPUT));
}void MouseLeftUp()//鼠标左键放开
{INPUT Input = { 0 };Input.type = INPUT_MOUSE;Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;SendInput(1, &Input, sizeof(INPUT));
}void MouseRightDown()//鼠标右键按下
{INPUT Input = { 0 };Input.type = INPUT_MOUSE;Input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;SendInput(1, &Input, sizeof(INPUT));
}void MouseRightUp()//鼠标右键放开
{INPUT Input = { 0 };Input.type = INPUT_MOUSE;Input.mi.dwFlags = MOUSEEVENTF_RIGHTUP;SendInput(1, &Input, sizeof(INPUT));
}
4鼠标移动的接口
void MouseMove(int x, int y)//鼠标移动到指定位置
{double fScreenWidth = ::GetSystemMetrics(SM_CXSCREEN) - 1;//获取屏幕分辨率宽度 double fScreenHeight = ::GetSystemMetrics(SM_CYSCREEN) - 1;//获取屏幕分辨率高度 double fx = x * (65535.0f / fScreenWidth);double fy = y * (65535.0f / fScreenHeight);printf("fScreenWidth %lf , fScreenHeight %lf, fx %lf, fy %lf \n", fScreenWidth, fScreenHeight, fx, fy);INPUT Input = { 0 };Input.type = INPUT_MOUSE;Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;Input.mi.dx = fx;Input.mi.dy = fy;SendInput(1, &Input, sizeof(INPUT));
}
5Main函数和头文件
#include <stdint.h>
#include <Windows.h>
#include <stdio.h>int main()
{Sleep(1000); //延时函数GetMouseCurPoint(); //获取鼠标当前所在位置MouseMove(x, y); //x, y坐标从GetMouseCurPoint()的打印中获取Sleep(10); //move之后需要延时MouseLeftDown();Sleep(1);MouseLeftUp();Sleep(100);return 0;
}
6参考资料和说明
- 参考链接
http://t.csdnimg.cn/ezeafhttp://t.csdnimg.cn/ezeaf
- 代码下载链接
https://download.csdn.net/download/u013232419/88808663https://download.csdn.net/download/u013232419/88808663
- 说明
代码部分已经全部放到正文中了,上述的资料需要下载积分1分(就当懒得复制的分吧,不是很喜欢动不动一个资料需要40多分,期望更多类似的分享)。