绕过"禁止粘贴"限制的模拟打字工具:把文本当作真实键盘输入,逐字"敲"进目标窗口。
English: A Windows typing-simulation tool that bypasses paste restrictions by typing text as real keyboard input. Its dual input engine (PyDirectInput scan codes with automatic Unicode/SendInput fallback) keeps Chinese characters and special symbols from being dropped. Features include global hotkeys (F8/F9), auto-saved configuration, clipboard/input modes, random intervals, a start delay, and an auto-stop guard when the target window switches back to itself. Single-file EXE, no kernel driver or admin rights required. MIT licensed.
与 GitHub 上同类工具对比(星数数据截至 2026-09):
| 项目 | ⭐ | 技术方案 | 主要短板 |
|---|---|---|---|
| freezeLUO/Simulate_keyboard_Input | 291 | Python + pynput | 无热键/配置/自动保存,无 License,需手动切窗口点开始 |
| wed0n/Paster | 133 | Tauri (Rust + TS) | 2023 年后停更;注入受 UIPI 限制,目标以管理员运行时必须同样以管理员运行 |
| colorcard/AutoInputTool | 63 | Python + Tkinter | 固定 3 秒延时,无热键/配置,功能单一 |
| YinChingZ/TypeSimulator | 48 | C# / .NET 4.8 | 需安装 .NET Framework 4.8;侧重按键映射 |
| kba977/pywinio | 17 | winio 内核驱动 | 需管理员 + 测试模式 + PS/2 键盘/笔记本键盘,门槛高 |
| 本项目 | - | Python + PyQt5 | 见下方优势 |
本项目的主要优势:
- 双输入引擎自动回退:ASCII 可映射字符走 PyDirectInput(DirectInput 扫描码),中文、大写、特殊符号自动回退 SendInput Unicode,不静默丢字
- 面向中文场景:中文界面 + 中英文混输可靠,同类工具大多只针对 ASCII 或需输入法配合
- 配置体验完整:界面改动自动保存、原子写入、非法配置项逐项回退、配置文件固定在程序目录——同类基本没有
- 热键体验完整:可自定义、改完即时生效、注册失败保留旧键,全程 F8/F9 控制
- 安全细节:输入目标切回本窗口时自动停止(避免把文本打进自己的输入框);延时触发、随机间隔、去换行、标点后补空格
- 零依赖分发:单文件 exe 内置 PyDirectInput,无需 .NET、无需内核驱动、无需管理员(对比 pywinio 与驱动类方案)
- 工程化:33 项离屏自动化测试 + 完整中文文档 + MIT 许可
姊妹项目:Invincible-Paste-promax 提供 Interception 驱动级输入与虚拟机穿透方案(需安装驱动);本项目是其轻量、免驱动的替代实现。
- 剪贴板模式:自动从剪贴板获取文本并模拟打字粘贴
- 输入模式:手动输入文本进行模拟打字
- 中文字符支持:中英文和标点可靠输入(底层输入失败自动回退键盘事件)
- 间隔时间:0-1秒可调,默认0秒
- 随机间隔模式:在设置间隔上随机浮动±50%
- 延时触发:0-60秒可调,默认0秒
- 自定义触发热键:默认F8
- 自定义停止热键:默认F9
- 热键实时生效:修改后自动重新注册;注册失败会保留原热键
- 自动停止:输入目标切回本程序窗口时自动停止
- 字符处理:移除换行符、标点后添加空格
- 自动保存:界面改动后自动保存到JSON文件
- 配置加载:启动时自动加载上次配置
- 手动保存:可点击"保存配置"立即写盘
- 配置位置:保存在程序(打包后为 exe)所在目录
- Windows 7/8/10/11 (推荐Windows 10/11)
- Python 3.6 或更高版本
pip install -r requirements.txt或使用启动脚本自动安装:
python run.py- 安装依赖:
pip install -r requirements.txt - 运行程序:
python typing_simulator.py或使用启动脚本:python run.py
-
选择模式:
- 剪贴板模式:从剪贴板获取文本
- 输入模式:在文本框中输入文本
-
配置参数:
- 设置打字间隔(0-1秒)
- 启用随机间隔(可选)
- 设置延时触发(可选)
-
开始打字:
- 点击"开始"按钮或按F8热键
- 程序将模拟打字输入文本
-
停止打字:
- 点击"停止"按钮或按F9热键
- 输入目标切回本窗口时会自动停止
- 进入"热键设置"标签页
- 输入热键名称(如:F8, ctrl+shift+a, alt+f4)
- 修改后自动生效;点击"保存配置"可立即校验并保存(失败会弹窗提示并保留原热键)
typing_simulator.py- 主程序文件run.py- 启动脚本(自动检查依赖)requirements.txt- 依赖包列表test_typing.py- 打字逻辑演示脚本test_directinput.py- 依赖检查与输入测试脚本test_offscreen.py- 离屏自动化测试(配置/热键/线程逻辑)typing_simulator_config.json- 配置文件(程序目录,自动生成)LICENSE- MIT 许可证docs/screenshot.png- 界面截图README.md- 说明文档
程序会自动创建配置文件 typing_simulator_config.json,包含以下配置项:
{
"mode": "clipboard",
"input_text": "用户输入的文本",
"interval": 0.0,
"random_interval": false,
"delay": 0,
"auto_stop": true,
"remove_newlines": false,
"add_spaces": false,
"trigger_hotkey": "F8",
"stop_hotkey": "F9"
}配置文件带类型校验:非法或超范围的配置项会自动回退默认值(日志中提示),不会影响其他配置项。
问题:提示"pyperclip未安装"
解决:运行 pip install pyperclip
问题:提示"keyboard模块未安装"
解决:运行 pip install keyboard
问题:界面中文字符显示为方框 解决:确保系统已安装中文字体,程序已设置微软雅黑字体
问题:热键与其他程序冲突 解决:在热键设置中修改为其他热键组合(修改后自动生效)
问题:改了配置重启后没变化,或找不到配置文件
解决:配置文件固定在程序(打包后为 exe)所在目录的 typing_simulator_config.json;界面改动会自动保存。若手动编辑过 JSON 且格式有误,程序会记录日志并回退默认值
问题:中文或部分符号没有输入 解决:确认目标窗口已获得焦点;程序会自动在底层输入与键盘事件之间回退,日志中会提示失败的字符
- 主线程:PyQt5 GUI界面
- 工作线程:打字模拟,避免界面卡顿
- 信号机制:线程间通信使用PyQt信号
- UI模块:基于PyQt5的图形界面
- 打字模块:模拟键盘输入
- 剪贴板模块:读取系统剪贴板
- 热键模块:全局热键注册
- 配置模块:JSON配置管理
- 每次输入任务拥有独立的运行ID和停止事件,快速停止/重新开始不会出现重复输入或提前中断
- 全局热键回调只发送信号,界面刷新与弹窗统一在主线程执行
- 通过PyQt信号进行线程间通信,避免直接跨线程操作UI组件
python test_offscreen.py离屏运行,覆盖配置读写与非法值回退、热键注册与失败保留、运行令牌隔离、字符路由等逻辑,无需人工干预。
typing_simulator.py
├── TypingSimulator类(主窗口)
│ ├── init_ui() - 初始化界面
│ ├── setup_basic_tab() - 基本设置
│ ├── setup_advanced_tab() - 高级设置
│ ├── setup_hotkey_tab() - 热键设置
│ ├── start_typing() - 开始打字
│ ├── typing_thread() - 打字线程
│ ├── save_config() - 保存配置
│ └── load_config() - 加载配置
└── main() - 程序入口
如需添加新功能,可参考以下扩展点:
- 新的输入源:修改
start_typing()方法 - 新的字符处理:在文本处理部分添加
- 新的热键功能:扩展
setup_hotkeys()方法 - 界面主题:修改UI样式表
本工具仅供学习交流与个人合法办公场景提高效率使用。请勿将其用于考试作弊、违反目标软件服务协议、非法入侵或其他不当用途;因使用本工具产生的任何后果由使用者自行承担。
本项目采用 MIT 许可证,详见 LICENSE。
- GitHub: @potacotion
- v2.1 (2026-09-14)
- 修复:快速停止/重新开始时的重复输入与提前中断问题
- 修复:热键回调跨线程操作界面可能导致的崩溃
- 修复:配置文件路径跟随启动目录、写入非原子、非法配置项中断全部设置
- 修复:PyDirectInput 缺失时空转、中文/大写字符丢失、默认按键延时拖慢速度
- 新增:界面改动自动保存、热键修改实时生效、输入到本窗口自动停止
- 移除:无实际作用的"保留剪贴板内容"选项
- 统一命名:仅保留
TypingSimulator.exe单一可执行文件 - 打包:已内置 PyDirectInput
- v2.0 (2026-03-25)
- 添加 PyDirectInput 支持,提升虚拟机兼容性
- v1.0 (2026-03-25)
- 初始版本发布
- 实现基本打字模拟功能
- 支持剪贴板和输入模式
- 配置保存和热键功能