让你的程序使用GUI

3 投票
5 回答
2592 浏览
提问于 2025-04-15 12:41

我想写一个程序,可以“使用”其他程序,方法是控制鼠标和键盘,并且能够“看到”屏幕上的内容。

我之前用过AutoIt做过类似的事情,但有时候我不得不作弊,因为这个语言的功能有限,或者可能是我技术不够好,没办法做到更多 :P

所以,我需要:

  • 截屏,然后对比这些截图,让程序“理解”内容,但它需要能够“看到”。
  • 使用鼠标:移动、点击和释放,这很简单,对吧?
  • 使用键盘:按一些键,或者组合键,包括像AltCtrl这样的特殊键。

我该如何在Python中实现这些功能呢?
这个方法在Linux和Windows上都能用吗?(这会非常酷,但不是必须的)

5 个回答

1

你可以在Windows系统上使用WATSUP这个工具。

2

AutoIt完全可以做到你提到的所有事情。当我想要进行一些自动化操作,同时又想使用Python的功能时,我发现使用AutoItX是最简单的选择,它是一个DLL/COM控件。

摘自我在这个回答

import win32com.client
oAutoItX = win32com.client.Dispatch( "AutoItX3.Control" )

oAutoItX.Opt("WinTitleMatchMode", 2) #Match text anywhere in a window title

width = oAutoItX.WinGetClientSizeWidth("Firefox")
height = oAutoItX.WinGetClientSizeHeight("Firefox")

print width, height
3

我在处理类似的任务时,使用了PyWinAuto,效果还不错。

pywinauto 是一组 Python 模块,专门用来自动化微软 Windows 的图形界面。简单来说,它可以让你通过程序发送鼠标和键盘的操作到 Windows 的对话框和控件上。

它还支持使用 Python 图像库PIL来捕捉对话框的图像等。

撰写回答