Управление программой с графическим интерфейсом Windows из сценария

Мне приходится использовать пакет моделирования Windows для выполнения повторяющейся задачи с немного разными вариантами каждый раз.

Так как я ненавижу повторяющиеся щелчки, по причинам как лени, так и количества ошибок, которые вносит человек, я хотел бы управлять этой программой автоматически. Рассматриваемая программа не поддерживает скриптинг, нет ни API, ни COM, нада, нет, нравин. Насколько я могу судить, единственный способ запустить эту программу автоматически — это имитировать человека (т. е. макросы клавиатуры и мыши).

Я знаю об AutoHotKey, но не думаю, что он делает то, что мне нужно. (Или он может делать то, что я хочу, но его язык сценариев ужасен.)

Требования таковы:

  • Должен допускать временные задержки между действиями или обнаружение событий для запуска действий.

    Моделирование может занять до десяти минут, поэтому драйвер графического интерфейса должен будет дождаться завершения моделирования, прежде чем запускать новое.

    Один из способов сделать это — просто подождать десять минут и надеяться, что симуляция завершена. Альтернативный способ — сделать его управляемым событиями, т. е. следить за тем, чтобы диалоговое окно «Симуляция выполнялась…» исчезало и заменялось диалоговым окном «Симуляция завершена».

  • Должна быть разрешена композиция сложного ввода с клавиатуры.

    Некоторые необходимые действия с клавиатуры различны для каждого прогона имитации. Например, описание симуляции может иметь формат [Имя проекта][Имя сценария][Вариант 1][Вариант 2]... , и его нужно будет вводить для каждой симуляции.

    Я знаю, что AutoHotKey позволяет базовый уровень настройки ввода, но мое случайное чтение документации делает язык сценариев похожим на какой-то жуткий ужас.

  • Это для работы, поэтому любое решение должно быть бесплатным для коммерческого использования.

Я приму любое решение, которое соответствует вышеуказанным критериям, но у меня есть сильноепредпочтение тому, что я могу получить из Python. Однако я бы также согласился с инструментами автоматизированного тестирования графического интерфейса, которые я мог бы настроить так, как мне нужно — возможно, с графическим интерфейсом Win32, эквивалентным Selenium для браузеров? - записи макросов клавиатуры, которые будут генерировать пользовательский вывод, или что-нибудь еще, что работает.

23
задан Li-aung Yip 14 March 2012 в 08:51
поделиться