けんろう
PyAutoGUIでは、PC画面のスクリーンショットを自動的に撮ったり、指定した画像を検索する機能で、業務自動化アプリが作れます。
Pythonライブラリである、PyAutoGUIを使い、スクリーンショットを撮ったり、指定した画像を検索して座標を取得することができます。この機能を使えば、電卓アプリを自動操作するようなアプリが作れます。
この記事に載っているサンプルコードをコピーして、Pythonで実行すれば、簡単に動きを確認できますので、是非試してみて下さい。
この記事では、初心者にもわかりやすいように、各処理の内容を、サンプルコード内にコメントとして載せています。
【無料オンライン】ゼロから始めるPythonプログラミング入門講座(週5開催) テックジムPyAutoGUIとは
PyAutoGUIは、マウスやキーボード操作を制御するためのPythonのモジュールです。
PyAutoGUIは、以下のことから,非常におすすめなツールです。
・無料で使えること
・Pythonで書けること
・画像認識機能が使える
公式サイト
公式ドキュメントは、以下です。
インストール方法
pip install pyautogui
スクリーンショット制御関数
関数一覧
内容 | 関数 | サンプル例 | 備考 |
スクリーンショットを撮る | screenshot( ‘保存するファイル名’, region=(左上座標, 幅, 高さ) ) | > im = pyautogui.screenshot(‘my_screenshot.png’) # スクリーンショットを撮り、 my_screenshot.pngという名前で保存する > im = pyautogui.screenshot(‘my_screenshot.png’, region=(0,0, 300, 400)) #(0,0)を左上として幅=300、高さ=400 の領域のスクリーンショットを撮り、 my_screenshot.pngという名前で保存する | |
画面座標を取得する (左上座標) | locateOnScreen( ‘検索する画像ファイル名’ ) | > testlocation = pyautogui.locateOnScreen(‘test1.png’) > testlocation Box(left=1416, top=562, width=50, height=41) | |
画面座標を取得する (中心座標) | center( ‘検索する画像ファイル名’ ) | > testlocation = pyautogui.locateOnScreen(‘test1.png’) > testpoint = pyautogui.center(testlocation) > testpoint Point(x=1441, y=582) |
今回作成するアプリ
・画面のスクリーンショットを撮る
・電卓を自動的に操作する(2+6=を計算する)
準備
準備1:画像を用意する
以下の画像を、指定するファイル名で保存してください。
画像の上で、右クリックすると、保存できます。
2.png
6.png
plus.png
equal.png
電卓アプリを起動する
サンプルコード
# https://pyautogui.readthedocs.io/en/latest/screenshot.html
#!usr/bin/env python
# -*- coding: utf-8 -*-
import pyautogui
# 画面のスクリーンショットを撮り、my_screenshot.pngというファイル名で保存する
im2 = pyautogui.screenshot('my_screenshot.png')
# (0,0)を左上として幅=300、高さ=400の領域で、画面のスクリーンショットを撮り、my_screenshot2.pngというファイル名で保存する
im3 = pyautogui.screenshot('my_screenshot2.png',region=(0,0, 300, 400))
# 電卓の「2」ボタンの座標を検索する
button_2_location = pyautogui.locateOnScreen('2.png')
# 電卓の「6」ボタンの座標を検索する
button_6_location = pyautogui.locateOnScreen('6.png')
# 電卓の「+」ボタンの座標を検索する
button_plus_location = pyautogui.locateOnScreen('plus.png')
# 電卓の「=」ボタンの座標を検索する
button_equal_location = pyautogui.locateOnScreen('equal.png')
# 電卓の「2」ボタンの座標を表示する
print(button_2_location)
print(button_2_location[0])
print(button_2_location.top)
# 電卓の「2」ボタンの中心座標を検索する
button_2_point = pyautogui.center(button_2_location)
button_2x, button_2y = button_2_point
# 電卓の「6」ボタンの中心座標を検索する
button_6_point = pyautogui.center(button_6_location)
button_6x, button_6y = button_6_point
# 電卓の「+」ボタンの中心座標を検索する
button_plus_point = pyautogui.center(button_plus_location)
button_plusx, button_plusy = button_plus_point
# 電卓の「=」ボタンの中心座標を検索する
button_equal_point = pyautogui.center(button_equal_location)
button_equalx, button_equaly = button_equal_point
# 電卓の「2」ボタンの座標を表示する
print(button_2_point)
print(button_2_point.x)
# 電卓の「2」ボタンをクリックする
pyautogui.click(button_2x, button_2y)
# 電卓の「+」ボタンをクリックする
pyautogui.click(button_plusx, button_plusy)
# 電卓の「6」ボタンをクリックする
pyautogui.click(button_6x, button_6y)
# 電卓の「=」ボタンをクリックする
pyautogui.click(button_equalx, button_equaly)
実行すると、
・my_screenshot.pngが生成される → PC画面のスクリーンショット
・my_screenshot2.pngが生成される → PC画面の一部のスクリーンショット
・電卓アプリのボタンが、「2」→「+」→「6」→「=」の順番で押下され、
電卓アプリに、8が表示される。
リンク
まとめ
今回は、Pythonライブラリである、PyAutoGUIを使い、スクリーンショットを撮ったり、電卓アプリを自動操作するアプリの作り方を紹介しました。
- 【Pythonアプリ入門】音声認識アプリを作る方法(SpeechRecognition)
- 【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(tkinterで実現)
- 【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(並列処理で実現)
- 【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(Scheduleモジュール)
- 【PythonでGUIアプリ入門】PySimpleGUI、Pyperclip を使った クリップボードアプリ の作り方
- 【PythonでGUIアプリ入門】PySimpleGUI を使った タイマーストップアプリ の作り方
リンク
コメント