web-dev-qa-db-ja.com

PythonでAutoIt関数を呼び出す

私は見たことがあります この投稿 AutoIt3 COMバージョンがあり、それを使用してPythonでAutoIt関数を呼び出すことができます。

AutoItのWebサイトでCOMバージョンが見つかりませんでした。どこかに隠されていますか?どうすれば入手できますか?

19
Wang Dingwei

PythonでAutoItXCOM/DLLを使用する方法

PythonでAutoItを使用する方法は2つあります。

  1. pyautoitモジュール
  2. Python for Windows拡張機能(pywin32)

PyautoitモジュールはDLLを使用しますが、pywin32ではCOMを使用できます。私が知る限り、この2つに機能的な違いはありません。

前提条件

  1. python のインストール。
  2. AutoIt のインストール。
  3. pyautoit または pywin32 のいずれかのインストール。

すべてのAutoIt機能がCOM/DLLインターフェースを介して利用できるわけではありません。機能を確認するには、AutoItXのヘルプファイルを参照してください。

Pyautoit

Pipまたはお好みの方法でインストールします。

pip install -U pyautoit

エラーが発生した場合:WindowsError: [Error 193] %1 is not a valid Win32 application pyautoitをインストールするときは、32ビットバージョンのpythonを使用してください。 64ビットバージョンのPythonを使用してpyautoitをインストールすることができませんでした。もちろん、マイレージは異なる場合があります。

インポートして使用する:

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コマンドはすべて、AutoItXが推奨するCamelCaseではなく、lower_case_with_underscoresを使用します。したがって、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ビットとしてインストールして再試行してください。

36
cledoux

AutoItX.dllおよびAutoItX3_x64.dllは、デフォルトのインストールの「AutoItX」というディレクトリに含まれています。ヘルプファイルをチェックしてくださいAutoItX.chm詳細については、そのディレクトリにあります。

10
ewall