9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PyAutoItをちょっとだけ触ってみた

Last updated at Posted at 2020-07-16

業務で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のインストール

  1. コマンドプロンプトを起動する
  2. pip install pyautoit と入力する
PyAutoItのインストール
$ pip install pyautoit

##2. AutoItのインストール
AutoItに入っている「Au3Info.exe2」を使いたいので、本家のAutoItもインストールします。

  1. AutoItの公式サイトのDownloadから最新版をダウンロードします。v3.3.14.5(2020年7月時点)
  2. ダウンロードしたSetup.exeを開き、インストールする
  3. 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)

  1. Au3Info.exeを起動するとこのような画面が表示されます
    1.png

  2. 赤枠の部分をドラッグして、操作したいウインドウの場所までもっていきます

2.png
  1. Controlタブを選択すると、ドラッグした箇所のウィンドウ情報を取得することができます。
    3.png

取得したウィンドウ情報をもとにコードを書いてみます

サンプルコード

ここでは、メモ帳に"Hello World!"と入力するサンプルコードを記述します。

PyAutoItサンプルコード(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")

実際に動かしてみた(デモ動画)

操作の内容

  1. メモ帳を開く
  2. "Hello World!"と入力する
  3. 保存せずにメモ帳を閉じる

sample.gif

AutoItの使い方

このページはPyAutoItのことをメインにしているので、
もし本家のAutoItに興味のある方は、下記の記事を読んでみてください。
https://cfautog.tokyo/2020/02/27/autoit-howtouse/

  1. ラッパー(Wrapper)とは、ざっくり言うと他のプログラムで動いていたものを、こっちのプログラムでも使えるようにしたもの。詳しく知りたい人はググってみてください。

  2. Au3Info.exeとは、操作対象のウインドウ情報を取得してくれる便利アプリです。RPAや自動化でとても重宝します。

9
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?