代码之家  ›  专栏  ›  技术社区  ›  Andrea Ambu

使您的程序使用gui

  •  3
  • Andrea Ambu  · 技术社区  · 17 年前

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

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

    所以我需要:

    • 截图,然后我会比较它们,让程序“理解”,但它需要“看”
    • 使用鼠标:移动、单击并释放,这很简单,不是吗?
    • 使用键盘:按一些键或组合键,包括特殊键,如 中高音 , Ctrl键

    在python中如何实现这一点?
    它在linux和windows中都能工作吗?(这可能真的很酷,但没有必要)

    5 回复  |  直到 15 年前
        1
  •  2
  •   swegi    17 年前

    你可以用 WATSUP 在窗户下面。

        2
  •  2
  •   Jamie    17 年前

    PyWinAuto .

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

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

        3
  •  2
  •   Community Mohan Dere    9 年前

    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
    
        4
  •  1
  •   Jeremy Salwen    17 年前

    http://freddy1990.com/index.php?page=product&name=scar 它可以进行OCR、位图查找、颜色查找等。它通常用于在线游戏的自动化,但也可以用于任何需要模拟人阅读屏幕并进行输入的情况。

        5
  •  0
  •   timday    17 年前

    Input API 以前编写类似VNC的远程控制应用程序。它可以让你在系统级很好地模拟键盘和鼠标输入(即不只是将事件发布到单个应用程序)。

    this excellent USENIX paper 描述自动响应性测试是必须阅读的。