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


    先上代码:

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

    后解释:

    ①获取硬件信息

    这是属于操作系统的工作,所以要导入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毫秒的作用,如果没有这个代码,这个循环执行的频率会很疯狂!)

  • 相关阅读:
    腾讯云将系统盘扩容到150G,怎么挂载上去
    【Bug】8086汇编学习
    Java基础- StringBuilder & StringBuffer
    LDR6328Q,快充界的黑马
    「Redis」06 事务与锁机制
    [附源码]Python计算机毕业设计Django的项目管理系统
    黑盒测试方法:原理+实战
    【技术积累】Python中的NumPy库【一】
    深入理解锁
    win11家庭版docker和milvus
  • 原文地址:https://blog.csdn.net/liKeQing1027520/article/details/134454400