Вызов функций AutoIt в Python

Я видел этот пост, что есть версия AutoIt3 COM, и с ней я могу вызывать функции AutoIt в Python.

Я не смог найти версию COM на веб-сайте AutoIt. Он где-то скрыт? Как я могу его получить?

Ответы

Ответ 1

Как использовать AutoItX COM/DLL в python

Существует два метода использования AutoIt в Python:

Модуль pyautoit будет использовать DLL, а с pywin32 мы сможем использовать COM. Насколько я знаю, функциональных различий между ними не существует.

Необходимые условия

Не все функции AutoIt доступны через интерфейс COM/DLL. Чтобы узнать, какие функции есть, см. Файл справки в AutoItX.

Pyautoit

Установите через пип или ваш предпочтительный метод:

pip install -U pyautoit

Если вы получаете сообщение об ошибке: WindowsError: [Error 193] %1 is not a valid Win32 application при установке pyautoit используйте 32-битную версию python. Мне не удалось получить pyautoit для установки с использованием 64-разрядной версии python. Конечно, ваш пробег может меняться.

Импорт и использование:

import autoit

autoit.run("notepad.exe")
autoit.win_wait_active("[CLASS:Notepad]", 3)
autoit.control_send("[CLASS:Notepad]", "Edit1", "hello world{!}")
autoit.win_close("[CLASS:Notepad]")
autoit.control_click("[Class:#32770]", "Button2")

В командах autoit все используются как low_case_with_underscores, а не AutoItX, предпочитаемые CamelCase. Таким образом ControlSend становится control_send, WinClose становится win_close и т.д.

pywin32

Как только pywin32 установлен, вызовите функции AutoItX:

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

autoit.Run("NotePad.exe")
autoit.ControlClick(WINDOW, "", "[CLASSNN:TTreeView1]", "left", 1, 53, 41)

Если у вас возникли проблемы с этой версией, установите все как 32 бит и повторите попытку.

Ответ 2

AutoItX.dll и AutoItX3_x64.dll включены в установку по умолчанию в каталоге под названием "AutoItX". Подробнее читайте в файле справки AutoItX.chm в этом каталоге.