一、项目背景
在实际工程中,我们经常让程序像'人'一样操作电脑:
- 自动化测试:点击按钮、输入文本
- 运维/工具:批量操作 GUI 程序
- 辅助工具:快捷操作、脚本化流程
- 教学实验:理解 OS 输入事件链路
这些需求的核心,都是:
程序如何向操作系统'注入'键盘与鼠标输入事件?
1. Windows 输入系统的基本认知
Windows 中,键盘和鼠标并不是直接'给应用'的,而是:
硬件 → 驱动 → 系统输入队列 → 消息分发 → 窗口
只要我们向系统输入队列提交合法事件,系统就会像处理真实硬件一样处理它。

