我简单的封装了一下,就变成了一个脚本的程序了,嗯,先获取坐标,再去模拟单击
#include <stdio.h>
#include<windows.h>
#include<conio.h>
#include <iostream>
using namespace std;
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
void get()
{
LONG x = -1, y = -1;
POINT pt = { 0, 0 };
while (true)
{
GetCursorPos(&pt); //获取鼠标当前位置
if ((x != pt.x) || (y != pt.y)) //如果位置与之前的位置不一样则输出新位置
{
printf("x=%d,y=%d\n", pt.x, pt.y);
x = pt.x, y = pt.y;
}
}
}
void click(int x, int y)
{
int ret = 0;
while (true)
{
if (KEY_DOWN('Q'))//q是开
{
ret = 1;
}
else if (KEY_DOWN('W'))//w是关
{
ret = 0;
}
else
{
if (ret == 1)
{
SetCursorPos(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
Sleep(10);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
}
else if (ret == 0)
{
Sleep(100);
}
}
}
}
void menu()
{
cout << "Welcome to Here ——YuEr" << endl;
cout << "1.刷新菜单" << endl;
cout << "2.开启坐标侦测模式" << endl;
cout << "3.模拟单击程序( “Q” 开始 “W” 暂停 不区分大小写)" << endl;
}
int main()
{
menu();
int temp;
while (true)
{
cin >> temp;
if (temp == 1)
{
menu();
}
else if (temp == 2)
{
get();
}
else if (temp == 3)
{
int x, y;
cout << "请输入X坐标:";
cin >> x;
cout << "请输入Y坐标:";
cin >> y;
click(x, y);
}
}
while (1);
return 0;
}
先输入2命令以后。鼠标每次更新位置就打印出一次坐标值

你只需要记住需要用到的X Y 坐标然后去 3命令里面输入,然后按Q就开始点击,按W就暂停,OK啦

发表评论: