Skip to content

Latest commit

 

History

History
82 lines (58 loc) · 4.54 KB

File metadata and controls

82 lines (58 loc) · 4.54 KB

KeyMouse 功能说明文档

本文档详细介绍了 KeyMouse 的各项功能、工作逻辑及配置选项,旨在帮助用户全面了解并充分利用本软件。


1. 核心架构:双模式系统

KeyMouse 的运行基于一个双模式切换系统,以确保键盘在作为鼠标模拟器和标准输入设备之间的无缝过渡。

  • 普通模式 (Normal Mode):

    • 此为程序默认的后台静默状态。
    • 所有键盘输入均保持原生行为,不进行任何拦截或修改。
    • 程序在此模式下资源占用极低。
  • 鼠标控制模式 (Mouse Control Mode):

    • 通过全局热键激活(默认为 <Alt> + A)。
    • 在此模式下,配置文件中定义的特定按键将被映射为鼠标的移动、点击及滚动等功能。
    • 为防止干扰目标应用程序,所有被映射的按键事件将被拦截,不会传递给操作系统。
    • 系统托盘图标会以视觉方式(颜色变化)标示当前所处模式。

2. 功能详解

2.1 鼠标光标控制

  • 基础移动: 通过四个方向键(默认为 I, J, K, L)控制光标的上下左右移动。
  • 多级变速:
    • Shift 减速: 按住 Shift 键可将移动速度按预设百分比降低(默认为 0.5x),用于精细操作。
    • CapsLock 微调: 切换 CapsLock 键可将移动速度降至更低水平(默认为 0.2x),适用于像素级别的精确对位。

2.2 鼠标按键模拟

  • 标准点击: 支持左键、右键及中键(滚轮)的单击模拟(默认键位分别为 ;, ', 右Shift)。
  • 粘滞左键 (Sticky Left-Click):
    • 触发后(默认为 N),程序将模拟持续按住鼠标左键的状态,用户可松开键盘。
    • 在此状态下,可使用移动键进行拖拽、框选等操作。
    • 当触发任何非移动的鼠标控制键(如点击、滚动)或再次按下粘滞键时,将自动解除左键按住状态。

2.3 平滑滚动 (Smooth Scrolling)

  • 采用基于时间的加速模型,模拟物理滚轮的滚动效果。
  • 用户按住滚动键(默认为 M,)的时间越长,滚动速度越快。
  • 滚动的初始速度、最大速度及加速度均可在设置界面中进行自定义,以匹配不同用户的偏好和高刷新率显示器。
  • 底层通过调用 Windows API 发送像素级滚动事件,绕过系统固有的“滚动行数”限制,实现真正的平滑滚动。

2.4 区域选择模式 (Region Select Mode)

此功能旨在解决长距离光标移动的效率问题,通过两次按键即可完成屏幕任意位置的精准定位。

  • 激活条件: 仅可在“鼠标控制模式”下激活(默认为 f),以避免在文本输入等场景下误触。
  • 工作流程:
    1. 激活后,屏幕被一个 5x5 的宏观网格(Macro Grid)覆盖。
    2. 用户按下目标区域所在的宏观单元格对应的按键。
    3. 该宏观单元格将被一个新的 5x5 微观网格(Micro Grid)进一步划分。
    4. 用户再次按下目标点所在的微观单元格对应的按键。
    5. 光标将立即移动至目标位置中心。
  • 无缝返回: 操作完成后,程序会自动从“区域选择模式”返回至之前的“鼠标控制模式”,确保工作流不被中断。
  • UI 特性: 覆盖层界面采用半透明背景和高对比度描边字体,确保在任何桌面背景下的清晰可辨。

3. 图形化配置界面 (GUI)

KeyMouse 提供了一个全面的图形化设置界面,用于个性化定制软件的各项行为。

3.1 键位设置

  • 所有核心功能的触发按键,包括模式切换热键、鼠标控制键等,均支持用户自定义。
  • 提供“按键录制”功能,用户只需在提示后按下期望的按键即可完成绑定。
  • 但是目前还不支持组合键的定义,请不要配置组合键

3.2 通用设置

  • 系统集成:
    • 开机自启动: 可通过修改注册表 (HKEY_CURRENT_USER) 实现程序的开机自动运行。
    • 管理员权限启动: 解决在部分高权限应用程序(如大型游戏、专业设计软件)中按键屏蔽的问题。启用后,程序会在启动时自动请求UAC提权。
  • 性能与体验调整:
    • 鼠标速度: 提供对基础移动速度、Shift 减速乘数、CapsLock 微调乘数的精细调整。
    • 平滑滚动参数: 允许用户自定义滚动物理模型的三个核心参数(初始/最大速度、加速度)。
    • 移动延迟: 可调整鼠标移动事件的循环间隔,以在响应速度和CPU占用之间取得平衡。