让你的程序使用 GUI

2023-12-01

我想编写一个程序,能够通过控制鼠标/键盘并能够“查看”屏幕上的内容来“使用”其他程序。

I used AutoIt做类似的事情,但有时我不得不作弊,因为语言不是那么强大,或者也许只是我很糟糕,我无法用它做那么多:P

所以...我需要:

  • 截屏,然后我将它们进行比较,以使程序“理解”,但它需要“看到”
  • 使用鼠标:移动、单击、释放,很简单,不是吗?
  • Using the keyboard: pressing some keys, or key combinations, including special keys like Alt,Ctrl etc...

我怎样才能在Python中做到这一点?
它在linux和windows下都可以工作吗? (这可能真的很酷,但没有必要)


我在类似的任务中使用过一些运气PyWinAuto.

pywinauto 是一组 python 模块 自动化 Microsoft Windows GUI。 最简单的是,它允许您发送 对窗口的鼠标和键盘操作 对话框和控件。

它还支持使用 Python 图像库捕获对话框图像等PIL.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让你的程序使用 GUI 的相关文章

随机推荐

  • 从网页链接打开客户端的桌面应用程序

    是否可以启动客户端桌面应用程序 例如Adobe Reader 任何游戏或任何其他软件来自网络 我有一个链接如何从网页 asp net 启动 EXE 其中之一已经让使用java脚本打开记事本 桌面应用程序 这仅限于IE 以类似的方式 我想在我
  • 更改 Eclipse Getters Setters 语法

    是否可以让 eclipse 生成 GetVar1 而不是 getVar1 大写G 我非常怀疑这一点 因为这违反了正常的 Java 方法命名约定和 JavaBeans 属性规则 I would 强烈地 强烈地建议您遵守 Java 命名约定 为
  • R正则表达式获得部分匹配

    我想使用 stri replace all regex 替换字符串但失败 我想知道是否还有其他方法可以克服它 感谢任何给我帮助的人 尝试 首先 gt library string gt a lt c abc2 xycd2 mnb345 tu
  • 用于要求所有元素的 Typescript 类型保护

    有没有办法要求带有打字稿的数组元素 这样我就可以拥有 type E keyof T Number of properties in T is unknown 令 T 的定义如下例所示 interface T el1 number el2 n
  • 为给定嵌套变量的出现创建编号序列

    我希望向数据集中添加一个变量 该变量对某个分组变量出现的实例进行排序 例如 ids lt c rep 1 4 rep 2 6 rep 3 2 我想要另一个变量来计算每个 id 出现的实例数 创建一个像这样的向量 1 2 3 4 1 2 3
  • 从命令行将参数传递给可执行文件[重复]

    这个问题在这里已经有答案了 我正在尝试从命令行将参数传递给 Fortran 可执行文件 用 C 语言实现此目的的示例程序是 取自here include
  • 由于下列问题,存档提交失败。错误 ITMS-90039

    我从 xcode 将应用程序上传到应用程序商店时遇到错误 类型不匹配 info plist 键 UILaunchImageName 的值不是该键所需的类型 更新 xcode 7 后出现此错误 只需从 info plist 文件中删除 UIL
  • 如何解决点击事件被触发两次的问题?

    我有一个一页应用程序 它使用backbone js 通过鼠标触发一次单击事件 通过触摸设备触发点击事件两次 取消绑定一键事件会在触摸设备上停止 我不知道从哪里开始寻找 这是JS classy on click button function
  • Python基于多种条件的随机样本选择

    我想在 python 中从以下 df 中进行随机样本选择 使得结果样本中至少 65 的颜色应为黄色 并且所选数量的累积总和应小于或等于 18 原始数据集 Date Id color qty 02 03 2018 A red 5 03 03
  • EF 4.1:为什么将常量转换为变量会导致额外的子查询?

    今天我发现实体框架向它生成的 SQL 添加了不必要的子查询 我开始挖掘我的代码 试图缩小它可能来自的范围 过了 很长 一段时间后 我查明了造成这种情况的原因 但现在我比开始时更困惑 因为我不知道为什么会导致这种情况 基本上我发现 在某些情况
  • 在 PySimpleGUI 中渲染 HTML?

    有谁知道是否可以让 PySimpleGUI 渲染 HTML 我并不想要一个成熟的浏览器 只是一个位于 PySimpleGUI 窗口中的 HTML 查看器 我知道 tkinter 有一个名为tk html widgets 我也在调查什么web
  • 就地编辑 CMS 建议 [关闭]

    Closed 这个问题是无关 目前不接受答案 我需要找到一个 非常 易于使用 对于编辑 作者 的 CMS 最好使用类似的就地编辑SiteCore 不过 我们不需要像 SiteCore 这样庞大而强大的东西 用户需要能够添加页面 使用我们在开
  • SignalR 应用程序无法在 IIS 下运行

    我正在尝试在 Visual Studio 2012 中构建 SignalR 应用程序 我的问题是它在 Visual Studio 调试下运行良好 在 Windows 7 上使用 Visual Studio 2012 但是当我尝试在 Wind
  • 在QML插件的QGLWidget上渲染QImage

    我正在尝试写一个QML插件从视频中读取帧 使用自定义小部件来执行该任务 而不是 QtMultimedia Phonon 并且每个帧都转换为QImageRGB888 然后显示在QGLWidget 出于性能原因 现在屏幕上没有任何内容 并且屏幕
  • 比较盒装长整型值 127 和 128

    我想比较两个Long对象值使用if状况 当这些值是小于 128 the if条件工作正常 但当他们大于或等于128 比较失败 Example Long num1 127 Long num2 127 if num1 num2 Works ok
  • 运行时错误:populate() 在 Django 中不可重入

    我正在尝试部署django网站 项目名称是pom 我尝试使用 apache2 在 ec2 服务器中运行 django 网站并收到以下错误 阿帕奇错误文件 Fri Jul 24 12 37 33 621285 2015 info pid 20
  • 为什么多维数组中需要更高维度的维度范围?

    根据该帖子 将 2D 数组传递给 C 函数 int array 10 10 void passFunc int a 10 lt Notice 10 here passFunc array 从编译器内部的角度来看 为什么需要这个更高的维度 另
  • 奇怪地使用方括号来调用函数

    使用方括号调用函数是如何工作的 100 toString function toString native code 100 toString length 1 这里到底发生了什么 这是括号表示法 任何属性都可以使用点或方括号表示法来访问
  • 减小图像的文件大小

    我用安卓相机拍了一张照片 结果是一个字节数组 我通过将其写入SD卡 FileOutputStream 来保存它 结果是文件大小接近 3mb 的图像 我想减小此文件大小 因此压缩图像 如果在将字节数组写入输出流之前能够减少文件大小 那就太好了
  • 让你的程序使用 GUI

    我想编写一个程序 能够通过控制鼠标 键盘并能够 查看 屏幕上的内容来 使用 其他程序 I used AutoIt做类似的事情 但有时我不得不作弊 因为语言不是那么强大 或者也许只是我很糟糕 我无法用它做那么多 P 所以 我需要 截屏 然后我