業務でPyAutoItを使ってみたので、備忘録として記事にしておきます。
PyAutoItとは
Python用のAutoItのラッパーで。WindwosのGUIを操作することができます1
※似たようなものにPythonGUIというものがありますが、私は詳しくないです。
公式:https://pypi.org/project/PyAutoIt/
そもそもAutoItとは・・・
AutoItはWindows用プログラムのGUI自動操作機能を主な特徴としている。スクリプトは実行形式にコンパイル可能であり、コンパイルしたものはAutoItインタプリタのインストールされていない環境でも動作する。フリーウェアであり非常に多くのライブラリ、開発ツールが存在する。
Wikipedia
公式:https://pypi.org/project/autoit/
とのことらしいです。
PyAutoItを使うのに必要な環境情報
# | 名前 | 説明 |
---|---|---|
1 | Python3 | PyAutoItはPythonで動くので当然必要になります |
2 | エディタツール | VSCode,pycharm,ATOM等お好きなもの |
3 | PyAutoIT | インストールしないと使えません |
##1. PyautoItのインストール
- コマンドプロンプトを起動する
- pip install pyautoit と入力する
$ pip install pyautoit
##2. AutoItのインストール
AutoItに入っている「Au3Info.exe2」を使いたいので、本家のAutoItもインストールします。
- AutoItの公式サイトのDownloadから最新版をダウンロードします。v3.3.14.5(2020年7月時点)
- ダウンロードしたSetup.exeを開き、インストールする
- Next -> Agree -> 画面に沿ってインストール
4.C:\Program Files (x86)\AutoIt3 の中にAu3Info.exe / Au3Info_64.exeが入っていることを確認する
※インストール先を変更した場合は、変更先で確認してください。
参考したページ:http://auto-pc.neginukide.com/?p=27
PyAutoItの使い方
PyAutoItはあくまでも自動化することしかできません。
その自動化する対象(GUI)の情報を取得するのには、Au3Info.exeを使用します。
※Au3Info.exe / Au3Info_64.exeの2種類存在しますが、自身のPCのbit数と同じものを使ってください。
Au3Info.exe:32bit / Au3Info_64.exe:64bit
PyAutoItで使える関数
基本的にAutoItと同じ関数が使えるそうです。
ただし、少しだけ使い方が異なるので注意してください。
例)ControlTreeView関数の場合
AutoIt:ControlTreeView
PyAutoIt:Control_Tree_View (autoit.Control_Tree_View(hoge,hogehoge,hogehogehoge)と使うそうです)
Au3Info.exeの使い方はこちらの記事を参考にしてください。
■■■Au3Info.exeの利用方法■■■
操作例(Au3Info.exe)
取得したウィンドウ情報をもとにコードを書いてみます
サンプルコード
ここでは、メモ帳に"Hello World!"と入力するサンプルコードを記述します。
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")
実際に動かしてみた(デモ動画)
操作の内容
- メモ帳を開く
- "Hello World!"と入力する
- 保存せずにメモ帳を閉じる
AutoItの使い方
このページはPyAutoItのことをメインにしているので、
もし本家のAutoItに興味のある方は、下記の記事を読んでみてください。
https://cfautog.tokyo/2020/02/27/autoit-howtouse/