GetKeyState获取键盘状态(原神水龙王转转转)

先上代码:

复制代码
#include<iostream>
#include<Windows.h>
int main(){
	std::cout << "按住鼠标侧键开始旋转,记得要以管理员身份运行!\n";
	while(true){
		if(GetKeyState(VK_XBUTTON1) < 0){
			std::cout << "检测成功,你的龙王正在旋转!\n";
			mouse_event(MOUSEEVENTF_MOVE, 800, 0, 0, 0);
		}
		Sleep(1);
	}
	return 0;
} 

后解释:

①获取硬件信息

这是属于操作系统的工作,所以要导入Windows.h这个头文件

②GetKeyState()

监视的键位对应的键值见本篇->传送门

返回值主要分为两种情况:

  • 监视的键位当前没被按下(包含从未按下及刚松开两种情景),返回0或1(程序首次运行为0,此后每松按一次在0和1之间切换)
  • 监视的键位当前被按住且未松开,返回-127或-128(程序首次运行为-128,此后每松按一次在-127和-128直接切换)
  • 总之,可以理解->为当返回值为负数时,监视键位正在被按住不放,否则监视键位刚被松开

③mouse_event()

其它鼠标事件可见本篇->传送门

其参数分别为:鼠标移动事件,x坐标,y坐标,鼠标滚轮滚动量,附加数据

示例代码的意思就是让鼠标移动到(800,0)这个位置

④Sleep()

Sleep函数是一个在C语言中使用的函数,用于挂起调用线程一定的时间,单位为毫秒。当函数设定的计时器到期,或者接收到信号、程序发生中断都会导致程序继续执行。

示例代码的意思就是让while循环这个线程每次执行时休眠1毫秒(别小看这1毫秒的作用,如果没有这个代码,这个循环执行的频率会很疯狂!)

相关推荐
王老师青少年编程8 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮8 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
样例过了就是过了10 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
谭欣辰10 小时前
C++ 排列组合完整指南
开发语言·c++·算法
代码中介商10 小时前
银行管理系统的业务血肉 —— 流程、状态机、输入校验与持久化(下篇)
c语言·算法
橙子也要努力变强11 小时前
信号捕捉底层机制-机理篇2
linux·服务器·c++
盐焗鹌鹑蛋11 小时前
【C++】stack和queue类
c++
郝学胜-神的一滴12 小时前
罗德里格斯旋转公式(Rodrigues‘ Rotation Formula)完整推导
c++·unity·godot·图形渲染·three.js·unreal
lzh2004091912 小时前
深入理解进程:从PCB内核结构到写时拷贝的底层实战
linux·c++
爱编码的小八嘎13 小时前
C语言完美演绎9-12
c语言