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毫秒的作用,如果没有这个代码,这个循环执行的频率会很疯狂!)

相关推荐
枕星而眠28 分钟前
Linux 四大进程/线程同步锁详解:互斥锁、读写锁、条件变量、文件锁
linux·c语言·后端·ubuntu·学习方法
社交怪人1 小时前
【数字对调】信息学奥赛一本通C语言解法(题号2070)
c语言·开发语言
hef2881 小时前
C语言中char指针与数组的区别及应用
c语言·开发语言
j_xxx404_2 小时前
Linux进程信号捕捉与操作系统运行本质深度解析
linux·运维·服务器·开发语言·c++·人工智能·ai
vx-程序开发2 小时前
基于机器学习的动漫可视化系统的设计与实现-计算机毕业设计源码08339
java·c++·spring boot·python·spring·django·php
__Benco2 小时前
创建一个 Linux5.10 普通 kill 无效的守护进程 Daemon-demo
c语言
啊董dong3 小时前
noi-2026年5月12号小测验
数据结构·c++·算法
咩咦4 小时前
C++学习笔记24:构造函数初始化列表
c++·学习笔记·类和对象·构造函数·初始化列表·const引用
为何创造硅基生物4 小时前
C 语言 typedef 结构体私有化
c语言·开发语言·算法
计算机安禾4 小时前
【c++面向对象编程】第43篇:可变参数模板(C++11):优雅处理不定长参数
java·开发语言·c++