我想通过控制鼠标/键盘来编写一个能够“使用”其他程序的程序,并且能够“看到”屏幕上的内容。
我用AutoIt做了类似的事情,但有时我不得不作弊,因为语言并不那么强大,或者可能只是因为我很糟糕而且我无法用它做那么多:P
所以......我需要:
我怎么能在python中做到这一点? 它在linux和windows中都有效吗? (这可能真的很酷,但没有必要)
答案 0 :(得分:2)
您可以在Windows下使用WATSUP。
答案 1 :(得分:2)
我在使用PyWinAuto时遇到了类似的任务。
pywinauto是一组python模块 自动化Microsoft Windows GUI。 它最简单,它允许您发送 鼠标和键盘操作到Windows 对话框和控件。
它还支持使用Python Imaging Library PIL捕获对话框的图像。
答案 2 :(得分:2)
AutoIt完全能够完成您提到的所有事情。当我想要进行一些自动化但使用Python的功能时,我发现最简单的方法是使用AutoItX这是一个DLL / COM控件。
取自我的this answer:
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 :(得分:1)
如果您对pascal感到满意,那么一个非常强大的键盘/鼠标/屏幕阅读程序就是SCAR:http://freddy1990.com/index.php?page=product&name=scar它可以进行OCR,位图查找,颜色查找等。它通常用于自动化在线游戏,但它可以用于任何你想要模拟人类阅读屏幕并给予输入的情况。
答案 4 :(得分:0)
我过去曾使用Windows(仅限)Input API编写类似VNC的远程控制应用程序。它可以让你在系统级别很好地伪造键盘和鼠标输入(即不仅仅是将事件发布到单个应用程序)。
如果您尝试在GUI级别对整个系统进行任何类型的自动化测试,则必须阅读描述自动响应性测试的this excellent USENIX paper。