推荐开源项目:PyDirectInput —— 更强大的自动化输入库
项目介绍
在自动化测试和脚本编写中,模拟鼠标和键盘输入是非常常见的操作。PyAutoGUI 作为一款广泛使用的库,提供了丰富的功能,但在某些特定场景下,尤其是涉及 DirectX 的应用程序和游戏中,其表现并不尽如人意。为了解决这一问题,PyDirectInput 应运而生。
PyDirectInput 旨在复制 PyAutoGUI 的鼠标和键盘输入功能,但通过使用 DirectInput 扫描码和更现代的 SendInput() win32 函数,显著提升了兼容性和稳定性。如果你在使用 PyAutoGUI 时遇到无法正常工作的情况,不妨试试 PyDirectInput!
项目技术分析
PyDirectInput 的核心优势在于其对 DirectInput 扫描码和 SendInput() 函数的利用。相比 PyAutoGUI 使用的虚拟键码(VKs)和已废弃的 mouse_event() 和 keybd_event() 函数,PyDirectInput 提供了更高的兼容性和更稳定的输入模拟。
技术亮点:
- DirectInput 扫描码:适用于更多应用程序,特别是依赖 DirectX 的游戏和软件。
- SendInput() 函数:现代且高效的 win32 API,确保输入的准确性和实时性。
项目及技术应用场景
PyDirectInput 适用于多种场景,特别是在以下领域表现尤为出色:
- 游戏自动化:在 DirectX 游戏中模拟鼠标和键盘操作,进行自动化测试或脚本编写。
- 软件测试:在特定软件中实现自动化输入,确保测试覆盖率和准确性。
- 桌面自动化:在日常办公和操作中,自动化重复性任务,提高工作效率。
项目特点
优点:
- 高兼容性:支持 DirectX 应用程序和游戏,弥补了 PyAutoGUI 的不足。
- 易于使用:与 PyAutoGUI 的接口相似,用户可以轻松切换和使用。
- 开源贡献:项目欢迎开发者参与,提供 pull request,共同完善功能。
已实现功能:
- 失败安全检查
- 暂停功能
- 获取鼠标位置(position())
- 获取屏幕尺寸(size())
- 移动鼠标(moveTo(x, y))
- 相对移动鼠标(move(x, y) / moveRel(x, y))
- 鼠标按下(mouseDown())
- 鼠标释放(mouseUp())
- 点击鼠标(click())
- 按下键盘(keyDown())
- 释放键盘(keyUp())
- 按键(press())
- 输入文本(write() / typewrite())
未实现功能:
- 滚动功能
- 拖拽功能
- 热键功能
- 特殊字符支持(如 '!', '@', '#' 等)
- 鼠标函数的部分参数(duration, tween, logScreenshot)
- 键盘函数的部分参数(logScreenshot)
如何使用
安装 PyDirectInput 非常简单,只需一条命令:
pip install pydirectinput
示例代码:
import pyautogui
import pydirectinput
pydirectinput.moveTo(100, 150) # 将鼠标移动到坐标 (100, 150)
pydirectinput.click() # 在当前位置点击鼠标
pydirectinput.click(200, 220) # 在坐标 (200, 220) 点击鼠标
pydirectinput.move(None, 10) # 将鼠标向下移动 10 像素
pydirectinput.doubleClick() # 双击鼠标
pydirectinput.press('esc') # 模拟按下 Escape 键
pydirectinput.keyDown('shift')
pydirectinput.keyUp('shift')
结语
PyDirectInput 是一个功能强大且易于使用的自动化输入库,特别适用于需要高兼容性和稳定性的场景。如果你正在寻找一个可靠的 PyAutoGUI 替代品,PyDirectInput 绝对值得一试!
立即访问 GitHub 项目页面 了解更多,或观看 教程视频 快速上手吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考