「自動でクリックするためにボタンの座標を知りたい」
「PyAutoGUIで画面キャプチャを自動的に撮りたい」
「Pythonを使ってRPAを自作したい」
このような場合には、この記事が参考となります。
この記事では、RPAで必須となる座標・サイズを計測する方法を解説します。
本記事の内容
- RPAでは必須の座標とサイズ
- 「MPPUtility」で座標を計測する
- 「Ruler」でサイズを計測する
- 「窓フォト」で座標とサイズを計測する
それでは、上記に沿って解説していきます。
RPAでは必須の座標とサイズ
DX推進が、強く叫ばれています。
そのDXで不可欠と言われているのが、RPAです。
RPAには、たくさんのツールが出ています。
有料、無料を含めてです。
ここでは、RPA自体についての説明はしません。
説明するのは、座標とサイズの計測方法についてです。
RPAを実践する場合に、これらの情報は必須となります。
クリックする場所を指定するには、座標が必要です。
また、スクリーンショットを撮影するには、範囲を指定しないといけません。
範囲とは、基準となる始点の座標と縦・横のサイズのことです。
もちろん、これらを簡単に取得できる仕組みを持ったツールもあるのでしょう。
しかし、ここではそんなツールは対象外とします。
主に対象とするのは、次のライブラリを使うケースです。
- PyAutoGUI
- pywinauto
上記見ればわかるように、それ専用のGUIツールがないようなケースと言えます。
SikuliXは、GUIの設定ツールが存在します。
そのため、SikuliXは今回の対象となるケースではありません。
それに、SikuliXで指定する座標は通常のマウス座標とは異なります。
独自で管理している空間があるようです。
では、実際にどのようにして座標とサイズを取得するのでしょうか?
それには、以下のフリーのツール・ソフトウェアを利用します。
- MPPUtility
- Ruler
- 窓フォト
OSは、Windowsに限定。
一般的にRPAと言えば、Windowsが多いはずです。
以下では、それぞれのソフトウェアを説明していきます。
「MPPUtility」で座標を計測する
MPPUtility
https://www.vector.co.jp/soft/winnt/util/se487144.html
ダウンロードは、Vectorから可能です。
インストール形式ではないので、気軽に利用できます。
ダウンロードしたzipを解凍して、あとはexeを起動するだけです。
起動すると、次のような画面が表示されます。
マウスカーソルの座標を表示してくれます。
あとは、その座標のカラーも表示します。
終了するには、「インジケーター(通知領域)」にあるアイコンから終了します。
初見では、どこでアプリを終了するのかわかりませんでした。
そのため、無理やりタスクマネージャーで終了させたぐらいです。
「Ruler」でサイズを計測する
Ruler
https://github.com/andrijac/ruler/releases
ダウンロードは、GitHub上から可能です。
現在の最新版は、Ruler 2.0となります。
これのzipをダウンロードします。
MPPUtilityと同じく、インストール不要となります。
そのため、気軽に利用できます。
exeを起動すると定規が表示されます。
これを移動させて、伸縮することでサイズを計測します。
終了させる場合は、右クリックで表示させたメニューから「Exit」を選択。
あと、タスクバーのアイコンからも閉じることができます。
ここまでで、MPPUtilityとRulerを説明しました。
これらを組み合わせれば、座標とサイズの計測が可能です。
しかし、一つのソフトウェアで両方とも取得できるモノが存在しています。
それが、次で紹介する窓フォトです。
窓フォト
窓フォト
https://www.vector.co.jp/soft/winnt/art/se487017.html
ダウンロードは、Vectorから可能です。
これも、インストール形式ではありません。
本来は、スクリーンショットを取得するツールです。
しかし、座標とサイズの両方を計測することができます。
スクショは、窓の中が対象となります。
その際、窓の座標とサイズが表示されています。
そして、座標は赤丸で示した部分です。
残念ながら、4点の座標は計測できません。
必要であれば、計算すればいいだけですけどね。
なお、PyAutoGUIでスクリーンショットを撮影する場合はこれだけで十分です。
PyAutoGUIで画面キャプチャを取る方法を説明しています。
PyAutoGUIでは、次のような指定方法でスクショを撮影できます。
pyautogui.screenshot(region=(1195, 382, 345, 357))
窓フォトとPyAutoGUIは、非常に相性が良いと言えます。
以上、画面上の座標・サイズの計測方法について説明しました。