Skip to main content

使用直接输入的 Windows 的 Python 鼠标和键盘输入自动化。

项目描述

pydirectinput_rgx

这个库是https://github.com/learncodebygaming/pydirectinput 1.0.4的一个分支

这个包以多种方式扩展了 PyDirectInput。它修复了一些错误,添加了仍然需要使用 PyAutoGUI 的剩余缺失输入函数,并提供了额外的仅关键字参数以更精确地控制函数行为。

与上游的 PyDirectInput 包相反,这个包打算几乎完全取代 PyAutoGUI 的基本用法,跳过更高级的选项,如记录屏幕截图和自定义补间函数。这应该减少并排安装 PyDirectInput 和 PyAutoGUI 的需要,从而将依赖项的数量保持在最低限度。

这个库是完全内联类型注释的,并且通过mypy --strict. 不幸的是,这也意味着这个包只适用于 Python 3.7 或更高版本。没有计划更改向后移植到旧版本。

这就是为什么这个包可以独立使用并使用相同的包名的原因。没有理由同时使用两者。一旦 Python 的类型注释得到更广泛的采用,这个包可能会被合并回来并集成到上游。在那之前,这个包的存在是为了填补这个空白。

好的,但是首先 PyDirectInput 是什么?

PyDirectInput 的存在是因为 PyAutoGUI 使用较旧且兼容性较差的 API 函数。

为了增加与 DirectX 软件和游戏的兼容性,内部已被 SendInput() 和 Scan Codes 取代,而不是 Virtual Key Codes。

有关更多信息,请参阅https://github.com/learncodebygaming/pydirectinput上的原始 README

安装

pip install pydirectinput-rgx

提供与 PyAutoGui 相同/相似签名的函数:

  • 信息:
    • position()
    • size()
    • onScreen()
    • isValidKey()
  • 鼠标输入:
    • moveTo()
    • move()/moveRel()
    • mouseDown()
    • mouseUp()
    • click()和衍生物:
      • leftClick()
      • rightClick()
      • middleClick()
      • doubleClick()
      • tripleClick()
    • scroll()/vscroll()
    • hscroll()
    • dragTo()
    • drag()/dragRel()
  • 键盘输入:
    • keyDown()
    • keyUp()
    • press()
    • hold()(支持上下文管理器)
    • write()/typewrite()
    • hotkey()

此外,键盘输入已扩展为:

  • 允许整数扫描码作为参数的低级 scancode_* 函数:
    • scancode_keyDown()
    • scancode_keyUp()
    • scancode_press()
    • scancode_hold()(支持上下文管理器)
    • scancode_hotkey()
  • 允许将 Unicode 字符插入支持的程序的高级 unicode_* 函数:
    • unicode_charDown()
    • unicode_charUp()
    • unicode_press()
    • unicode_hold()(支持上下文管理器)
    • unicode_write()/unicode_typewrite()
    • unicode_hotkey()

与 PyAutoGUI 相比缺少的功能

  • logScreenshot论据。不会创建任何屏幕截图。
  • tween论据。补间函数目前是硬编码的。

与分叉源点 PyDirectInput 版本 1.0.4 相比的变更日志:

  • 添加/修复扩展键码
  • 添加 flake8 棉绒
  • 添加 mypy 类型提示和注释(这使得这个 fork Python >=3.7 只!
  • 基于https://github.com/learncodebygaming/pydirectinput/pull/22添加滚动功能并改进
  • 基于https://github.com/learncodebygaming/pydirectinput/pull/30添加热键功能并改进
  • 添加更多可用的键盘键
  • 在旧的向下/向上/按下功能中为某些键盘键添加可选的自动移位
  • 为印刷和打字功能添加额外的参数以实现更严格的时序控制
  • 添加 Unicode 输入功能,允许发送简单键盘无法发送的文本
  • 添加允许对 SendInput 的抽象进行较低级别访问的 Scancode 输入函数
  • 通过虚拟分辨率添加对多显示器设置的支持(大多数功能应该可以正常工作)
  • 添加对交换主鼠标按钮的支持
  • 添加对鼠标功能的持续时间支持
  • 为鼠标持续时间添加睡眠校准
  • 添加自动禁用鼠标加速以获得更准确的相对鼠标移动
  • 增加文档

该库使用至少需要 Python 3.7 或更高版本的内联类型注释,并且没有计划使代码向后兼容旧的 Python 版本!


请参阅pydirectinput 的原始自述文件


项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pydirectinput_rgx-2.0.3.tar.gz (32.5 kB 查看哈希

已上传 source

内置分布

pydirectinput_rgx-2.0.3-py3-none-any.whl (30.8 kB 查看哈希

已上传 py3