Day Mode Night Mode
白狐狸宏4.2 使用说明

一、功能介绍

白狐狸宏4.2 是一款基于 ATmega32U4 HID 开发板 的硬件宏工具。

由于目前纯软件层面的宏功能已受到较大限制,因此当前方案采用“硬件 + 软件”结合的方式,通过开发板模拟真实键盘鼠标输入,再由上位机软件进行动作控制与时间轴编排,从而继续实现宏功能及自动化操作效果。

当前支持:

  • 键盘宏
  • 鼠标宏
  • 鼠标移动
  • 长按操作
  • 无限循环
  • 时间轴编排
  • 动作编辑

二、准备工作

1、需要购买的硬件

淘宝搜索:

  • ATmega32U4 开发板
  • Leonardo 开发板
  • Pro Micro 32U4

任选一种即可。

建议购买:

  • Type-C 接口版本

价格通常:

  • 20~30 元左右

注意:
必须是 ATmega32U4 芯片。

不要买:

  • UNO
  • Nano
  • ESP32

这些无法直接作为 HID 键鼠设备使用。


三、需要安装的软件

1、Arduino IDE

官网下载:

https://www.arduino.cc/en/software

安装完成即可。


四、烧录 HID 固件

1、连接开发板

使用数据线连接电脑。


2、Arduino 配置

打开 Arduino IDE:

开发板选择:

工具 → 开发板

选择:

  • Arduino Leonardo

或者:

  • SparkFun Pro Micro

根据自己购买型号选择。


端口选择

工具 → 端口

选择新出现的 COM 口。


3、创建 Arduino 工程

新建一个工程。

将下面完整代码复制进去。


4、完整 HID 固件代码

#include <Mouse.h>
#include <Keyboard.h>
#include <string.h>
#include <stdlib.h>

// =========================
// 命令缓冲区
// =========================

char cmdBuf[64];
uint8_t cmdLen = 0;

// 前置声明
void handleCommand(char* s);

// =========================
// 安全移动(支持大范围移动)
// =========================

void moveSafe(int x, int y)
{
    while (x != 0 || y != 0)
    {
        int mx = constrain(x, -127, 127);
        int my = constrain(y, -127, 127);

        Mouse.move(mx, my);

        x -= mx;
        y -= my;

        delay(1);
    }
}

void setup()
{
    Serial.begin(115200);

    Mouse.begin();
    Keyboard.begin();
}

void loop()
{
    while (Serial.available())
    {
        char c = Serial.read();

        if (c == '\r')
            continue;

        if (c == '\n')
        {
            cmdBuf[cmdLen] = '\0';

            handleCommand(cmdBuf);

            cmdLen = 0;
        }
        else
        {
            if (cmdLen < sizeof(cmdBuf) - 1)
            {
                cmdBuf[cmdLen++] = c;
            }
            else
            {
                // 超长命令直接丢弃
                cmdLen = 0;
            }
        }
    }
}

// =========================
// 命令处理
// =========================

void handleCommand(char* s)
{
    // =========================
    // 鼠标左键点击
    // =========================
    if (strcmp(s, "ML") == 0)
    {
        Mouse.click(MOUSE_LEFT);
    }

    // =========================
    // 鼠标右键点击
    // =========================
    else if (strcmp(s, "MR") == 0)
    {
        Mouse.click(MOUSE_RIGHT);
    }

    // =========================
    // 鼠标左键按下
    // =========================
    else if (strcmp(s, "MP") == 0)
    {
        Mouse.press(MOUSE_LEFT);
    }

    // =========================
    // 鼠标左键松开
    // =========================
    else if (strcmp(s, "MU") == 0)
    {
        Mouse.release(MOUSE_LEFT);
    }

    // =========================
    // 鼠标右键按下
    // =========================
    else if (strcmp(s, "RP") == 0)
    {
        Mouse.press(MOUSE_RIGHT);
    }

    // =========================
    // 鼠标右键松开
    // =========================
    else if (strcmp(s, "RU") == 0)
    {
        Mouse.release(MOUSE_RIGHT);
    }

    // =========================
    // 鼠标移动
    // MV:x,y
    // =========================
    else if (strncmp(s, "MV:", 3) == 0)
    {
        int x = 0;
        int y = 0;

        sscanf(s, "MV:%d,%d", &x, &y);

        moveSafe(x, y);
    }

    // =========================
    // 鼠标滚轮
    // MW:value
    // =========================
    else if (strncmp(s, "MW:", 3) == 0)
    {
        int wheel = atoi(s + 3);

        Mouse.move(0, 0, wheel);
    }

    // =========================
    // 键盘按下
    // KD:keycode
    // =========================
    else if (strncmp(s, "KD:", 3) == 0)
    {
        int key = atoi(s + 3);

        Keyboard.press(key);
    }

    // =========================
    // 键盘松开
    // KU:keycode
    // =========================
    else if (strncmp(s, "KU:", 3) == 0)
    {
        int key = atoi(s + 3);

        Keyboard.release(key);
    }

    // =========================
    // 单击按键
    // KT:keycode
    // =========================
    else if (strncmp(s, "KT:", 3) == 0)
    {
        int key = atoi(s + 3);

        Keyboard.press(key);

        delay(20);

        Keyboard.release(key);
    }

    // =========================
    // 释放全部键盘按键
    // =========================
    else if (strcmp(s, "KA") == 0)
    {
        Keyboard.releaseAll();
    }

    // =========================
    // 释放全部鼠标按键
    // =========================
    else if (strcmp(s, "MA") == 0)
    {
        Mouse.release(MOUSE_LEFT);
        Mouse.release(MOUSE_RIGHT);
        Mouse.release(MOUSE_MIDDLE);
    }
}

5、上传固件

点击:

工具栏 → 上传

等待上传完成即可。

成功后开发板会自动识别为 HID 键盘鼠标设备。


五、使用白狐狸宏4.2

请使用网盘下载4.2:百度网盘 夸克网盘

1、打开软件

运行:

白狐狸宏4.2.exe


2、连接设备

点击:

“连接设备”

状态栏显示:

已连接 COMx

即代表成功。


3、添加动作

目前支持:

  • 键盘按键
  • 鼠标左键
  • 鼠标移动
  • 延迟
  • 无限循环
  • 指定循环次数

4、时间轴编辑

软件支持:

  • 修改动作顺序
  • 修改按住时间
  • 修改动作间隔
  • 删除动作
  • 无限循环

时间单位均为:
毫秒(ms)


5、载入预设宏

可下方链接先下载预设宏文件到本地,再导入预设的宏文件

1. 2号位动作仅鞠躬刷花

2. 0.2秒鼠标左键循环

3. 放生精灵全选

4 .个人的常用的动作打包,仅供参考


5、按键介绍

键盘按键填写对照总表(key字段)

分类按键key填写
字母键A-Za / b / c / d …
数字键00
数字键11
数字键22
数字键33
数字键44
数字键55
数字键66
数字键77
数字键88
数字键99
功能键F1f1
功能键F2f2
功能键F3f3
功能键F4f4
功能键F5f5
功能键F6f6
功能键F7f7
功能键F8f8
功能键F9f9
功能键F10f10
功能键F11f11
功能键F12f12
方向键up
方向键down
方向键left
方向键right
常用控制键空格space
常用控制键回车enter
常用控制键ESCesc
常用控制键Tabtab
常用控制键退格backspace
修饰键左Ctrllctrl
修饰键左Shiftlshift
修饰键左Altlalt
修饰键左Winlwin
修饰键右Ctrlrctrl
修饰键右Shiftrshift
修饰键右Altralt
修饰键右Winrwin

六、开始运行

快捷键

  • 数字 8 → 开始运行
  • 数字 9 → 停止运行

也可以直接点击界面按钮。


七、常见问题

1、提示未找到开发板

请检查:

  • 是否连接数据线
  • 是否安装驱动
  • 是否为 ATmega32U4
  • 是否能在 Arduino IDE 中看到端口

2、按键无反应

请确认:

  • 固件已正确烧录
  • 开发板已识别为 HID
  • 软件已成功连接 COM 口

3、热键无效

请尝试:

右键 → 管理员运行

部分系统需要管理员权限才能监听全局热键。


八、免责声明

本工具仅用于:

  • 学习研究
  • 自动化测试
  • HID 开发实验

请勿用于违反游戏规则或相关平台规定的用途。

由用户自行承担使用风险。


评论

  1. 匿名
    1 月前
    2026-6-03 18:47:15

    博主nb

  2. 匿名
    1 月前
    2026-6-12 22:20:16

    博主,一直未找到开发板怎么解决呀

    • 博主
      匿名
      2 周前
      2026-6-28 23:04:52

      试下4.2版本,可能解决了

  3. 2 周前
    2026-6-30 4:20:29

    The shift to hardware-level HID emulation is a brilliant technical workaround. It underscores a universal principle: optimizing digital interaction often requires bypassing software limitations, whether for industrial RPA or for enhancing the user experience on a platform like gperya app download apk. Low-level control remains key to advanced automation.

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇