Skip to content

Latest commit

 

History

History
142 lines (99 loc) · 5.35 KB

USAGE.md

File metadata and controls

142 lines (99 loc) · 5.35 KB

AutoTyper 使用手册

适用版本:v2.0.0(Rust 实现) · 平台:Windows 10 / 11


1. 获取 AutoTyper

方式 步骤 适合人群
EXE 发行版 从 GitHub Releases 下载 AutoTyper-vX.Y.Z-win64.exe,双击运行 所有用户(无任何运行时依赖)
源码运行 安装 Rust 后执行 cargo run 开发者
本地构建 cargo build --release,产物位于 target\release\AutoTyper.exe 需要定制的用户

发行版 EXE 由 GitHub Actions 在推送版本标签(v*)时自动构建并发布,构建前会先运行完整测试。


2. GUI 模式

启动后主界面自上而下为:菜单栏、文本编辑区、参数设置区、按钮行(开始输入 / 停止 / 进度条),底部为状态栏。

基本流程

  1. 在「输入文本」框中粘贴或编辑要输入的文本(也可通过菜单 文件 → 打开文件... / Ctrl+O 从 .txt、.py、.java 等文件加载)
  2. 调节参数:
    • 字符间隔:5–100ms,建议不低于 10ms(过快可能丢字)
    • 行间延迟:10–200ms,每行结束后额外等待
    • 倒计时:1–30s,点击「开始输入」后的缓冲时间,用于切换到目标窗口
    • 紧急停止:勾选后,输入过程中把鼠标移到屏幕任意角落立即中止
  3. 点击「开始输入」,在倒计时结束前把光标点进目标输入框
  4. 输入过程中可随时点击「停止」中止;进度条实时显示百分比

菜单栏

菜单 功能
文件 → 打开文件...(Ctrl+O) 从文件加载文本
文件 → 保存文本...(Ctrl+S) 将编辑区内容保存为文件
文本片段 → 保存当前文本为片段... 按名称保存常用文本,持久化到 config.json
文本片段 → 导入/导出片段... 以 JSON 文件批量迁移片段
帮助 → 使用说明 / 关于 内置帮助

3. CLI 模式

所有 CLI 调用都需要 --cli 开关:

AutoTyper.exe --cli [输入源] [参数]

开发调试时等价于 cargo run -- --cli ...。

输入源(三选一,互斥)

参数 说明
--text, -t "..." 直接指定文本
--file, -f <路径> 从文件读取(UTF-8)
--snippet, -s <名称> 使用 config.json 中已保存的片段

可选参数

参数 默认值 说明
--interval <秒> 配置文件值(0.01) 字符间隔
--line-delay <秒> 配置文件值(0.05) 行间延迟
--countdown <秒> 配置文件值(5) 启动倒计时
--no-failsafe 关闭 禁用鼠标四角紧急停止
--list-snippets — 列出所有已保存片段后退出

参数优先级:命令行 > config.json > 内置默认值。

示例

# 输入一句话
AutoTyper.exe --cli --text "Hello, World!"

# 输入代码文件,间隔 20ms,倒计时 3 秒
AutoTyper.exe --cli --file answer.py --interval 0.02 --countdown 3

# 使用已保存的片段
AutoTyper.exe --cli --snippet "常用代码段"

退出码

退出码 含义
0 输入完成
1 输入源错误(文本为空 / 文件不可读 / 片段不存在 / 未指定输入源)
2 参数解析错误或鼠标四角紧急停止
3 Ctrl+C 用户中断

4. 紧急停止

输入失控时的三种中止方式(按响应速度排序):

  1. 鼠标移到屏幕任意角落(需启用 failsafe,默认开启)——立即抛出中断
  2. GUI 点击「停止」按钮——当前字符发送完后中止
  3. CLI 按 Ctrl+C

注意:紧急停止检测在每个字符之间执行,因此实际停止位置最多滞后一个字符间隔。


5. 配置文件

  • 位置:程序运行目录下的 config.json(首次运行自动生成,默认值见 config.example.json)
  • config.json 保存用户本地数据(含文本片段),不纳入版本控制
  • snippets 字段格式为 {"名称": "内容"},可用 GUI 菜单或 CLI 导入导出

6. 常见问题

问题 原因与解决
目标程序收不到字符 部分程序(如某些游戏、以管理员权限运行的程序)拦截或忽略 WM_CHAR;尝试以相同或更高权限运行 AutoTyper
丢字、内容不完整 将字符间隔调大到 10ms 以上
中文变成问号或乱码 目标输入框不支持 Unicode;确认目标程序的编码设置
输入到了错误窗口 倒计时结束前确保目标窗口处于前台并获得焦点
换行处多出空行 目标程序同时处理了 VK_RETURN 按键事件与换行;属目标程序行为,可将文本合并为单行规避

7. 工作原理

用户启动 → 倒计时(切换窗口) → engine.type_text()
                                      │  逐字符
                                      ▼
                        user32.PostMessageW(hwnd, WM_CHAR, 码位, 0)
                        user32.PostMessageW(hwnd, WM_KEYDOWN/KEYUP, VK_RETURN/VK_TAB)

与 SendInput / keybd_event 的全局键盘模拟不同,PostMessageW 直接向目标窗口消息队列投递消息:不经过剪贴板、不触发键盘 Hook、不要求 AutoTyper 窗口处于前台(只要目标窗口持有输入焦点)。