Skip to content

Repository files navigation

自动输入工具 (Automatic Input Tool)

一个功能强大的自动输入工具,支持通过自定义快捷键将剪贴板内容自动输入到任意应用程序中。采用现代化图形界面,提供直观的配置选项和实时日志显示。

功能特点

  • 快捷键触发:支持自定义多种快捷键组合
  • 剪贴板输入:自动读取并输入剪贴板内容
  • 内容输入区:可直接在GUI中输入内容并自动输入
  • 现代化界面:基于 CustomTkinter 的清晰浅色界面
  • 实时日志:显示详细的运行状态和操作日志
  • 剪贴板预览:实时预览当前剪贴板内容
  • 高级配置:可自定义输入速度和防抖时间
  • 中英文支持:优化的延迟机制支持混合输入

安装依赖

运行时依赖(开发 / 使用程序)

pip install -r requirements.txt

依赖包:

  • pynput - 键盘监听和控制
  • pyperclip - 剪贴板操作
  • customtkinter - 现代化GUI框架

运行 + 打包依赖(构建可执行文件)

如果你需要在本机打包生成 exe,可安装包含打包工具的依赖列表:

pip install -r requirements-build.txt

其中在 requirements.txt 的基础上额外包含:

  • pyinstaller - 打包为独立可执行文件

使用方法

启动程序

python main_gui.py

主要功能

1. 启动/停止监听

  • 点击"启动监听"按钮开始监听键盘快捷键
  • 点击"停止监听"按钮停止监听
  • 启动后按下配置的快捷键即可触发自动输入

2. 使用内容输入区

方法一:复制到剪贴板

  1. 在内容输入区输入要自动输入的文本
  2. 点击"复制到剪贴板"按钮
  3. 切换到目标应用程序
  4. 按下快捷键触发自动输入

方法二:复制并输入

  1. 在内容输入区输入要自动输入的文本
  2. 点击"复制并输入"按钮
  3. 程序会倒计时3秒
  4. 在倒计时期间切换到目标应用程序
  5. 程序自动开始输入

方法三:直接使用剪贴板

  1. 从其他应用复制内容到系统剪贴板
  2. 切换到目标应用程序
  3. 按下快捷键触发自动输入

3. 测试功能

  • 点击"测试输入"按钮可测试当前剪贴板内容的输入
  • 倒计时3秒后自动开始输入
  • 用于验证配置是否正常工作

快捷键配置

默认快捷键

快捷键 描述
Alt + G 触发自动输入(默认快捷键)

提示:默认只有一个快捷键,您可以通过设置界面添加更多自定义快捷键。

自定义快捷键

打开设置窗口

在主界面点击"快捷键配置"区域的"设置"按钮。

录制快捷键

  1. 点击要修改的快捷键右侧的"录制"按钮
  2. 按下你想要设置的快捷键组合(如 Ctrl + Shift + A
  3. 松开所有按键后自动完成录制
  4. ESC 可取消录制

添加快捷键

  1. 点击"添加新快捷键"按钮
  2. 系统会自动添加一个默认快捷键
  3. 点击"录制"按钮设置你想要的组合

删除快捷键

  1. 点击要删除的快捷键右侧的"删除"按钮
  2. 直接删除(至少需要保留一个快捷键)

支持的快捷键类型

  • 单个键:任意字母、数字键
  • 修饰键:Ctrl、Alt、Shift、Cmd(Mac)
  • 功能键:F1-F12
  • 特殊键:Enter、Space、Tab、Backspace 等
  • 组合键:最多支持4个键的组合

高级配置

所有高级配置都可以在设置窗口的"高级配置"区域进行调整。

防抖时间

  • 说明:防止快捷键重复触发的间隔时间
  • 单位:秒
  • 默认值:0.5秒
  • 推荐范围:0.3-1.0秒
  • 作用:快捷键触发后,在防抖时间内再次按下不会触发

输入延迟

  • 说明:每个字符之间的输入间隔
  • 单位:毫秒
  • 默认值:20毫秒
  • 推荐范围:10-50毫秒
  • 注意事项
    • 延迟太小(<10ms)可能导致输入失败或字符丢失
    • 延迟太大(>100ms)会使输入速度明显变慢
    • 英文字母会自动使用2.5倍延迟(默认50ms)
    • 空格会自动使用1.5倍延迟(默认30ms)
    • 其他字符使用基础延迟

保存设置

  1. 调整完所有配置后,点击"保存"按钮
  2. 配置会自动保存到 config.json 文件
  3. 如果正在监听,需要重新启动监听使其生效

恢复默认设置

  1. 关闭程序
  2. 删除 config.json 文件
  3. 重新启动程序,将自动创建默认配置(仅含 Alt + G

手动编辑配置文件(高级用户)

配置文件位置:config.json

{
    "hotkeys": [
        {
            "keys": ["alt_l", "g"],
            "description": "Alt + G"
        }
    ],
    "debounce_time": 0.5,
    "input_delay": 0.02
}
  • hotkeys: 快捷键列表
  • debounce_time: 防抖时间(秒)
  • input_delay: 输入延迟(秒,注意GUI中显示为毫秒)

工作原理

  1. 监听指定的键盘快捷键组合
  2. 快捷键触发时,读取系统剪贴板内容
  3. 模拟键盘按键,逐字符输入剪贴板内容
  4. 输入完成后,等待下一次触发

使用场景

  1. 批量填写表单:复制文本后,使用快捷键快速输入到表单字段
  2. 代码输入:在某些不支持粘贴的编辑器中输入代码
  3. 重复文本输入:需要多次输入相同内容时
  4. 自动化测试:模拟键盘输入进行界面测试
  5. 数据录入:快速录入大量文本数据

注意事项

1. 权限要求

程序需要访问键盘和剪贴板,部分系统可能需要授予权限:

  • Windows:可能需要以管理员身份运行
  • macOS:需要在"系统偏好设置 > 安全性与隐私 > 辅助功能"中授权
  • Linux:需要X11环境支持

2. 输入速度(可自定义配置)

  • 默认基础延迟:20ms/字符
  • 英文字母:自动使用2.5倍延迟(默认50ms,避免输入法干扰)
  • 空格:自动使用1.5倍延迟(默认30ms)
  • 其他字符:使用基础延迟(默认20ms)
  • 可在设置窗口的"高级配置"中调整输入延迟(推荐:10-50毫秒)

3. 焦点切换

触发快捷键前,确保目标应用程序处于焦点状态,否则输入会失败。

4. 特殊字符处理

  • 程序会自动处理换行符(\n)和制表符(\t
  • 换行符会被转换为 Enter 键
  • 制表符会被转换为 Tab 键
  • 空格使用 Key.space 确保正确输入
  • 无法输入的特殊字符会被自动跳过

5. 多行文本

支持输入多行文本,换行会正常保留。内容输入区中的所有格式(包括前后的空格和换行)都会完整保留。

6. 中英文混合输入(重要)

  • 强烈建议在输入前将输入法切换到英文模式
  • 如果保持中文输入法,英文字母可能被误识别为拼音
  • 例如:"m" 可能变成 "吗","yi" 可能变成 "以"
  • 程序会在开始输入时显示提示信息
  • 切换方法
    • Windows:按 Shift 切换中英文
    • macOS:按 Caps LockControl + Space 切换
    • Linux:按 ShiftSuper + Space 切换

7. 安全性

请勿在输入密码等敏感信息时使用此工具,剪贴板内容可能被其他程序访问。

故障排除

问题1:快捷键不响应

解决方法

  • 检查是否与其他程序的快捷键冲突
  • 确认"启动监听"按钮已被点击
  • 在设置中更换一个不同的快捷键组合
  • 重启程序后重试

问题2:输入速度太快/太慢

解决方法

  • 打开设置窗口,在"高级配置"中调整"输入延迟"
  • 较慢的系统可能需要增加延迟(如30-50ms)
  • 较快的系统可以减少延迟(如10-20ms)
  • 点击"保存"后重新启动监听

问题3:某些字符无法输入

解决方法

  • 检查目标应用是否支持该字符
  • 确认字符在当前键盘布局下可用
  • 某些特殊字符可能无法通过键盘模拟输入
  • 查看日志区域的警告信息

问题4:剪贴板读取失败

解决方法

  • 确保系统剪贴板功能正常
  • 检查是否有其他程序占用剪贴板
  • 尝试先复制一些简单文本进行测试
  • 重启程序后重试

问题5:多行文本格式错乱

解决方法

  • 程序已正确处理换行符和制表符
  • 多行文本的格式会完整保留
  • 如仍有问题,请检查目标应用是否支持该格式
  • 可以使用"测试输入"功能验证

问题6:中英文混合输入时字符错误

症状

  • 英文字母被转换成中文(如 "m" → "吗","yi" → "以")
  • 空格丢失或位置不对
  • 部分字符输入错误

根本原因

  • 系统输入法处于中文模式时,会拦截英文字符并尝试转换为拼音
  • pynput 模拟键盘输入会被输入法识别为拼音输入

解决方法(按优先级)

  1. 最佳方案:输入前切换到英文输入法

    • Windows:按 Shift 键切换
    • macOS:按 Caps LockControl + Space
    • Linux:按 ShiftSuper + Space
  2. 已优化:程序已增加输入延迟

    • 英文字母延迟更长,给输入法响应时间
    • 空格专门处理,使用 Key.space
    • 可在设置中调整延迟,但不能完全避免输入法干扰
  3. 临时方案:如果无法切换输入法

    • 尝试先输入一个空格激活英文模式
    • 或在目标应用中先手动输入一个英文字符
    • 然后再使用自动输入功能
  4. 替代方案:纯中文或纯英文内容不受影响

    • 如果可能,分开输入中文和英文部分
    • 先输入中文,再输入英文

问题7:设置窗口显示问题

症状

  • 设置窗口没有出现或出现在主窗口后面

解决方法

  • 已修复:设置窗口现在是模态窗口,会自动显示在最前面
  • 设置窗口会自动居中显示在屏幕中央
  • 如仍有问题,请尝试最小化其他窗口或重启程序

问题8:程序无法启动

解决方法

  • 确认已安装所有依赖:pip install -r requirements.txt
  • 检查Python版本是否为3.7+
  • 查看终端中的错误信息
  • 删除 config.json 文件后重试

技术栈

  • Python 3.7+
  • GUI框架:CustomTkinter 5.2.1
  • 键盘控制:pynput
  • 剪贴板操作:pyperclip
  • 配置管理:JSON

项目结构

automatic-input-tool/
├── main_gui.py              # 主程序(GUI界面)
├── config_manager.py        # 配置管理器
├── config.json              # 配置文件(运行时自动生成)
├── requirements.txt         # 运行时依赖
├── requirements-build.txt   # 运行 + 打包依赖(包含 pyinstaller)
├── build.spec               # PyInstaller 配置
├── build.bat                # 一键打包脚本
├── 打包说明.md              # 打包流程说明
├── build/                   # 打包中间文件(构建产物)
├── dist/                    # 打包输出目录(构建产物)
└── 发布包/                  # 发布用文件夹(构建产物)

提示:build/dist/发布包/ 都是打包生成的构建产物,通常不需要提交到版本库,可在 .gitignore 中忽略。

更新日志

最新版本特性

  • 新增高级配置:可自定义输入速度和防抖时间
  • 优化设置窗口界面,增加配置说明
  • 改进中英文混合输入的延迟机制
  • 切换为浅色主题(白底黑字)
  • 移除所有emoji符号,界面更简洁
  • 完善的错误提示和验证机制

已修复的问题

  • 修复了中英文混合输入时字符被转换的问题
  • 修复了设置窗口首次点击闪退的问题
  • 修复了设置窗口出现在主窗口后面的问题
  • 修复了多行文本换行不显示的问题
  • 完善了快捷键录制和删除功能

许可证

本项目仅供学习和个人使用。

贡献

欢迎提交 Issue 和 Pull Request!

如有任何问题或建议,请通过 Issue 反馈。

About

一个功能强大的自动输入工具,支持通过自定义快捷键将剪贴板内容自动输入到任意应用程序中。采用现代化图形界面,提供直观的配置选项和实时日志显示

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages