【问题标题】:Make your program USE a gui让你的程序使用 gui
【发布时间】:2010-11-08 05:50:29
【问题描述】:

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

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

所以...我需要:

  • 截图,然后对比一下,让程序“看懂”,但需要“看”
  • 使用鼠标:移动、单击和释放,很简单,不是吗?
  • 使用键盘:按一些键或组合键,包括特殊键,如 AltCtrl 等...

如何在 python 中做到这一点?
它适用于linux和windows吗? (这可能真的很酷,但没有必要)

【问题讨论】:

  • 尼克,那个问题的答案没有提到截图。但是,您可能可以自动化该部分。我的猜测是 Andrea 想要一个用于回归测试的完整自动化包。
  • 如果真的是为了回归测试,那么Andrea很可能走错了路。除非在大多数奇怪的情况下,否则自动化 GUI 测试并不是一个好主意。

标签: python user-interface remote-control


【解决方案1】:

Windows下可以使用WATSUP

【讨论】:

    【解决方案2】:

    我过去曾使用 Windows(仅限)Input API 编写类似 VNC 的远程控制应用程序。它可以让您在系统级别很好地伪造键盘和鼠标输入(即不仅仅是将事件发布到单个应用程序)。

    如果您尝试在 GUI 级别对整个系统进行任何类型的自动化测试,this excellent USENIX paper 描述自动化响应测试是必读的。

    【讨论】:

      【解决方案3】:

      如果你对 Pascal 感到满意,一个真正强大的键盘/鼠标/屏幕阅读程序是 SCAR:http://freddy1990.com/index.php?page=product&name=scar 它可以进行 OCR、位图查找、颜色查找等。它通常用于自动化在线游戏,但它可用于任何想要模拟人类阅读屏幕并提供输入的情况。

      【讨论】:

        【解决方案4】:

        我使用PyWinAuto 完成了类似任务。

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

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

        【讨论】:

          【解决方案5】:

          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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-13
            • 1970-01-01
            相关资源
            最近更新 更多