自動化系ライブラリ|「PyAutoGUI」の使い方・サンプルコード

Python

インストール方法

PyAutoGUIは、Pythonを使用してGUI操作を自動化するためのライブラリです。マウスの移動やクリック、キーボードの入力などをプログラムで制御することができます。以下に、PyAutoGUIのインストール方法を詳しく説明します。

1. Pythonのインストール

まず、Pythonがインストールされている必要があります。Pythonは公式サイトからダウンロードできます。

Pythonのバージョンは3.6以降を推奨します。

2. pipの確認

通常、Pythonをインストールするとpipも自動的にインストールされます。コマンドラインまたはターミナルで以下のコマンドを実行して、pipがインストールされているか確認します。

pip --version

3. PyAutoGUIのインストール

pipを使用してPyAutoGUIをインストールします。以下のコマンドを実行してください。

pip install pyautogui

もしくは、

py -m pip install pyautogui

これでPyAutoGUIのインストールが完了します。なお、PyAutoGUIは、スクリーンショットを取得するためにPillowライブラリにも依存していますが、インストール時に自動的にインストールされます。

できること

PyAutoGUIは、さまざまなGUI操作を自動化するための機能を提供しています。主な機能は以下の通りです。

  1. マウス操作:
  • マウスの移動、クリック、ダブルクリック、右クリック、ドラッグなどをプログラムで制御できます。
  1. キーボード操作:
  • キーボードの入力、ショートカットキーの送信、特定のキーの押下などが可能です。
  1. スクリーンショット:
  • 画面全体または特定の領域のスクリーンショットを取得し、画像ファイルとして保存できます。
  1. 画像認識:
  • 画面上の特定の画像を認識し、その位置を取得することができます。これにより、特定のボタンやアイコンを自動でクリックすることが可能です。
  1. ウィンドウ操作:
  • アプリケーションウィンドウの位置を取得したり、ウィンドウを最小化、最大化、閉じるなどの操作ができます。
  1. 遅延の設定:
  • 各操作間に遅延を設定することで、より自然な動作を実現できます。

関数一覧

PyAutoGUIの主な関数一覧は以下の通りです。これらの関数を使用することで、マウス操作やキーボード操作、スクリーンショットなどの自動化が可能です。

マウス操作

  • pyautogui.moveTo(x, y, duration=0): 指定した座標(x, y)にマウスを移動します。
  • pyautogui.moveRel(xOffset, yOffset, duration=0): 現在のマウス位置から相対的に移動します。
  • pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left'): 指定した座標でクリックします。
  • pyautogui.doubleClick(x=None, y=None, interval=0.0, button='left'): 指定した座標でダブルクリックします。
  • pyautogui.rightClick(x=None, y=None): 指定した座標で右クリックします。
  • pyautogui.dragTo(x, y, duration=0): 指定した座標までドラッグします。
  • pyautogui.scroll(amount): スクロールします。

キーボード操作

  • pyautogui.typewrite(message, interval=0.0): 指定したメッセージを入力します。
  • pyautogui.press(key): 指定したキーを押します。
  • pyautogui.hotkey(*args): 複数のキーを同時に押します(ショートカットキー)。
  • pyautogui.keyDown(key): 指定したキーを押し続けます。
  • pyautogui.keyUp(key): 指定したキーを放します。

スクリーンショット

  • pyautogui.screenshot(region=None): スクリーンショットを取得します。regionを指定することで特定の領域をキャプチャできます。
  • pyautogui.locateOnScreen(image, confidence=None): 画面上で指定した画像を検索し、その位置を返します。
  • pyautogui.locateCenterOnScreen(image, confidence=None): 画面上で指定した画像の中心位置を検索します。

画面情報

  • pyautogui.size(): 画面のサイズを返します(幅、高さ)。
  • pyautogui.position(): 現在のマウスの位置を返します。
  • pyautogui.onScreen(x, y): 指定した座標が画面内にあるかどうかをチェックします。

その他

  • pyautogui.alert(text, title=''): アラートダイアログを表示します。
  • pyautogui.confirm(text, title='', buttons=['OK', 'Cancel']): 確認ダイアログを表示します。
  • pyautogui.prompt(text, title='', default=''): 入力ダイアログを表示します。

これらの関数を組み合わせることで、さまざまな自動化タスクを実現できます。詳細な使い方やオプションについては、PyAutoGUIの公式ドキュメントを参照してください。

サンプルコード

以下に、PyAutoGUIを使用した基本的なサンプルコードを示します。この例では、特定のアプリケーションを開いて、マウスを使ってボタンをクリックする自動化スクリプトを作成します。

サンプルコード:メモ帳を開いてテキストを入力する

import pyautogui
import time
import subprocess

# メモ帳を開く
subprocess.Popen(['notepad.exe'])

# メモ帳が開くまで待機
time.sleep(2)

# テキストを入力
pyautogui.typewrite("Hello, this is an automated message!", interval=0.1)

# クリックする位置を指定(例:ファイルメニュー)
pyautogui.click(100, 50)  # 位置は画面に依存します

# さらに操作を続ける場合は、適宜クリックや入力を追加
pyautogui.typewrite("This is a test of PyAutoGUI.", interval=0.1)

# スクリーンショットを取得
screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")  # スクリーンショットを保存

コードの説明

  1. メモ帳を開く:
  • subprocess.Popen(['notepad.exe'])を使用して、メモ帳を開きます。この方法でアプリケーションを起動できます。
  1. 待機:
  • time.sleep(2)を使用して、メモ帳が開くまで2秒待機します。この待機時間は、アプリケーションの起動に必要な時間に応じて調整できます。
  1. テキストの入力:
  • pyautogui.typewrite()を使用して、指定したテキストをメモ帳に入力します。interval引数を指定することで、文字入力の間隔を設定できます。
  1. クリック操作:
  • pyautogui.click(100, 50)を使用して、指定した座標をクリックします。座標は画面の解像度に依存するため、実際の位置に応じて調整が必要です。
  1. 追加の入力:
  • さらにテキストを入力することで、操作を続けることができます。
  1. スクリーンショットの取得:
  • pyautogui.screenshot()を使用して、現在の画面のスクリーンショットを取得し、指定したファイル名で保存します。

まとめ

PyAutoGUIは、Pythonを使用してGUI操作を自動化するための非常に便利で強力なライブラリです。マウスやキーボードの操作をプログラムで制御できるため、繰り返し行う作業を自動化するのに役立ちます。

インストールも簡単で、数行のコードで基本的な自動化スクリプトを作成できます。PyAutoGUIは、特にデスクトップアプリケーションの操作や、テスト自動化、データ入力作業の効率化に役立ちます。

ただし、PyAutoGUIを使用する際は、画面解像度やアプリケーションのウィンドウ位置に依存するため、動作環境に応じて調整が必要です。また、自動化スクリプトを実行する際には、他のアプリケーションの操作を避けることが推奨されます。これにより、意図しない動作を防ぎ、スムーズな自動化が可能になります。

PyAutoGUIを活用することで、日常の煩雑な作業を効率化し、時間を節約することができます。興味がある方は、ぜひPyAutoGUIを試してみてください。自動化の新たな可能性を広げることができるでしょう。

このライブラリの他にも自動化系ライブラリの記事も書いています。
ぜひ、見てみてください。

コメント

タイトルとURLをコピーしました