羽夏闲谈——鼠标连点器

前言

  玩95版植物大战僵尸的打僵尸游戏被打自闭了,到了进度中间僵尸出的速度就离谱,打都打不完,手和鼠标都要点费了。我堂堂一个会编程的人,想通过这个关卡,于是乎写一个鼠标连点器的念头就起来了。

就这么离谱

原理

  何为鼠标连点器,顾名思义,通过某种方式实现快速在某个位置连续点击。本次我们将用C语言来实现一个简陋的鼠标连点器。为啥说简陋呢?一是不好看,是一个黑框控制台;二是不能随便自定义设置,需要改代码。但鼠标连点器的精髓都在于此。
  既然实现鼠标连点器的功能,我们就必须找到能够模拟出鼠标点击的API。经过查询,找到如下库函数:

WINUSERAPI VOID WINAPI mouse_event(
 DWORD dwFlags,
 DWORD dx,
 DWORD dy,
 DWORD dwData,
 ULONG_PTR dwExtraInfo);

  这个函数的功能是用于鼠标的移动和点击。从函数的名称就知道这东西是干啥的,发起一个鼠标事件,鼠标不就能干点击、滚轮滚动、移动光标的事情吗?我们需要点击鼠标几下,调用这个函数几次不就行了吗?实现模拟点击调用如下:

mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //当前位置点击一次鼠标

  我比较懒,我想点击键盘的某一个按键就在我鼠标的位置持续连点,就需要知道这个按键的状态,那么用到下面这个API

WINUSERAPI SHORT WINAPI GetAsyncKeyState(int vKey);

  如果我想检测Control这个按键的状态,我们需要这样调用:

GetAsyncKeyState(VK_CONTROL);

  VK_CONTROL是一个枚举,它的值代表一个按键,其他的按键自行查看。
  所有需要的函数都了解了,我们就开始写代码了。

#include <windows.h>    //GetAsyncKeyState 和 mouse_event 两个函数需要引用的头文件

int main()
{
    //轮巡按键状态
    while (1)
    {
        //CONTROL键是否被按下,是的话进入连点循环
        while (GetAsyncKeyState(VK_CONTROL))
        {
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            Sleep(5);    //更改参数可以调整连点频率
        }
        //ESCAPE键被按下的话,直接退出循环结束
        if (GetAsyncKeyState(VK_ESCAPE))
            break;
        Sleep(10);    //更改此参数可以调整轮巡按键频率
    }
    return 0;
}

  上面的代码还调用了Sleep函数,这个函数是用来暂停一会儿当前线程的。故名思意就是先睡一会不操作。睡到指定时间再醒过来继续执行。传递的参数是时间,单位是毫秒。通过这个可以调整频率,减少CPU负担。

测试

  让那些僵尸们感受到恐惧吧!!!

结语

  本人火绒粉,从论坛看到 点击器传播病毒暗刷流量 ,有些感慨。就这一个小功能就被下毒,有点感慨很多软件越来越流氓,IT现在的软件环境比较良心的少了。
  说点题外话,软件免费功能强大,投放广告你投也就罢了,能不能投点正常的广告?有些软件原本良心,现在动不动就公开下毒,搜集信息或暗刷流量或劫持等等有意思吗?哪些软件我就不说了,随便就一大堆。
  好了,不说了。现在做一个小总结:通过GetAsyncKeyState获取指定按键状态确定开始连点,用mouse_event实现模拟点击,连点器的功能就完全实现了。加一个 GUI,再加可以自定义的设置代码,一个连点器就彻底完成了。

posted @   寂静的羽夏  阅读(1189)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示