dnf回归,想挂机,但怕被封......记录一下
ps:或许可以使用物理外挂,即用串口模块,利用另一台电脑来操控
也可以借助单片机
本文两部分:1. 控制鼠标和键盘的输入 2. 获取鼠标的实时坐标
需要的库:<windows.h>
移动鼠标和出发鼠标事件:
/*https://blog.csdn.net/qq_35409640/article/details/75212236解说*/
int main() {
while (1) {
Sleep(3000); //延时函数,3000延时3000毫秒,即3秒
SetCursorPos(0, 0);//设置鼠标坐标
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//左键按下和抬起的动作,即单击左键的动作
mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_LRIGHTUP, 0, 0, 0, 0);//点击右键
//两次连续的鼠标左键单击事件 构成一次鼠标双击事件
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
return 0;
}
}
控制键盘的输入
//字母
keybd_event('A', 0, 0, 0); //按下
keybd_event('A', 0, 2, 0); //松开
//回车
keybd_event(0x0d, 0, 0, 0);
keybd_event(0x0d, 0, 2, 0);
mouse_enent函数的参数意义:
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
参数 意义
dwFlags Long,下表中标志之一或它们的组合
dx,dy Long,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置
cButtons Long,没有使用
dwExtraInfo Long,没有使用
dwFlags常数 意义
const int MOUSEEVENTF_MOVE = 0x0001; 移动鼠标
const int MOUSEEVENTF_LEFTDOWN = 0x0002; 模拟鼠标左键按下
const int MOUSEEVENTF_LEFTUP = 0x0004; 模拟鼠标左键抬起
const int MOUSEEVENTF_RIGHTDOWN = 0x0008; 模拟鼠标右键按下
const int MOUSEEVENTF_RIGHTUP = 0x0010; 模拟鼠标右键抬起
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; 模拟鼠标中键按下
const int MOUSEEVENTF_MIDDLEUP = 0x0040; 模拟鼠标中键抬起
const int MOUSEEVENTF_ABSOLUTE = 0x8000; 标示是否采用绝对坐标
使用绝对坐标
MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0
需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,如果dx,和dy,用0,0表示,这函数认为是当前鼠标所在的点。5、直接设定绝对坐标并单击
mouse_event(MOUSEEVENTF_LEFTDOWN, X * 65536 / 1024, Y * 65536 / 768, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, X * 65536 / 1024, Y * 65536 / 768, 0, 0);
其中X,Y分别是你要点击的点的横坐标和纵坐标
获取鼠标的实时坐标:
#include<Windows.h>
void main()
{
LONG zx = -1;
LONG zy = -1;
POINT ptB = { 0, 0 };
/*
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
*/
while (1)
{
LPPOINT xy = &ptB; //位置变量
GetCursorPos(xy); //获取鼠标当前位置
//如果鼠标移动,(即当前的坐标改变则打印出坐标)打印出做坐标。
if ((zx != xy->x) || (zy != xy->y))
{
printf("x=%d,y=%d\n", xy->x, xy->y);
zx = xy->x;
zy = xy->y;
}
}
}
---------------------
作者:liuguangsh
来源:CSDN
原文:https://blog.csdn.net/liuguangsh/article/details/50666763
版权声明:本文为博主原创文章,转载请附上博文链接!