在大家做游戏时,经常会用到一些鼠标的控制,不然效果会有很大的削减,今天,我为大家讲解一下关于鼠标的操作。
重点来了
在进行鼠标获取坐标或移动操作时,必须定义一个
POINT p;//并非必须是p,可随意设置
1 获取鼠标位置
GetCursorPos(&p);//获取鼠标坐标,不要问我为什么,这就是设定
2 设置鼠标位置
SetCursorPos(p.x,p.y);//更改鼠标坐标
注意,我定义的的是p,如果定义的是其他的话,例如a,那么就应该是:
SetCursorPos(a.x,a.y);//更改鼠标坐标
或者也可以放置一个变量:
int x=100;
int y=100;
SetCursorPos(x,y);
3 判断鼠标是否单击
printf("鼠标左键是否按下:");
if(KEY_DOWN(VK_LBUTTON))printf("是");
else printf("否");
printf("\n");
printf("鼠标右键是否按下:");
if(KEY_DOWN(VK_RBUTTON))printf("是");
else printf("否");
printf("\n");
printf("鼠标滚轮键是否按下:");
if(KEY_DOWN(VK_MBUTTON))printf("是");
else printf("否");
printf("\n");
注意,代码前必须含有此段
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
这个是必要的,只能靠背
4 模拟鼠标单击
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟鼠标键按下
Sleep(10);//要留给某些应用的反应时间
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模拟鼠标键抬起
5 损死人不偿命的代码
#include<windows.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
int main(){
SetConsoleTitleA("https://blog.csdn.net/qq_56187979?spm=1000.2115.3001.5343");
POINT p;
GetCursorPos(&p);//获取鼠标坐标
HWND hwnd=FindWindow("SYSTEM.exe",NULL);
if(hwnd){
ShowWindow(hwnd,SW_HIDE); //设置指定窗口的显示状态
}//隐藏窗口
while(1){
// srand(time(0));
// int x=rand()%200+1;
// int y=rand()%200+1;
// SetCursorPos(x,y);
SetCursorPos(p.x,p.y);//更改鼠标坐标
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Sleep(10);//要留给某些应用的反应时间
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//不停模拟单击,让电脑打开许多应用
}
return 0;
}