みなさん、こんにちは!みやしんです。
今回はPyAutoGUIという、とても便利なライブラリをご紹介します!
タイトルの通り、様々なPC操作を自動化してくれるライブラリです。

Pythonは便利なライブラリがたくさんあって凄いですね!
それでは、早速始めていきたいと思います。
PythonやAIをもっと勉強したい方🤗

PyAutoGUIとは
PyAutoGUIライブラリを使うと、プログラムでマウスとキーボードを制御することができます。
つまり、人が行うPC操作の殆ど(全て?)はPyAutoGUIで出来てしまうということです。
例えば、下記のようなことが可能です。
- 現在のマウスポジション把握
- 一時停止
- フェイルセーフ機能
- キーボードとマウスの制御
- ドラッグ操作
- ブラウザ画面をスクロール
- 文字列入力
- メッセージボックスを表示
- スクリーンショット機能
- ホットキー入力(「ctrl + c」などの組み合わせ入力)
PyAutoGUIのインストール
pipの場合は、
pip install PyAutoGUI
Anacondaの場合は、
conda install -c conda-forge pyautogui
サンプルコード
インポート
import pyautogui
マウスの位置を取得
pyautogui.position()
# マウスの位置を取得
mouse_position = pyautogui.position()
print(mouse_position)
実行結果
Point(x=1381, y=592)
画面サイズを取得
pyautogui.size()
# 画面サイズを取得
monitor_size = pyautogui.size()
print(monitor_size)
実行結果
Size(width=1920, height=1080)
カーソル移動
pyautogui.moveTo()、pyautogui.moveRel()
# カーソルを動かす(絶対座標へ移動, duration=移動にかける秒数)
pyautogui.moveTo(100, 100, duration=10)
# カーソルを動かす(相対座標へ移動, duration=移動にかける秒数)
pyautogui.moveRel(100, 100, duration=10)
クリック
pyautogui.mouseDown()、pyautogui.mouseUp()
# 右クリックを押す
pyautogui.mouseDown(button='right')
# マウスをx=100,y=200へ動かして、右クリックを離す
pyautogui.mouseUp(button='right', x=100, y=200)
pyautogui.click()
# クリック
pyautogui.click()
# クリック x=x座標、y=y座標、click=click回数、interval=click間の秒数、button=右クリックor左クリック
pyautogui.click(x=700, y=700, clicks=1, interval=1, button="Right")
pyautogui.rightClick()、pyautogui.middleClick()、pyautogui.doubleClick()、pyautogui.tripleClick()
# 右クリック
pyautogui.rightClick()
# カーソルを移動して右クリック
pyautogui.rightClick(x=700, y=700)
# ミドルクリック
pyautogui.middleClick()
# カーソルを移動してミドルクリック
pyautogui.middleClick(x=100, y=100)
# ダブルクリック
pyautogui.doubleClick()
# カーソルを移動してダブルクリック
pyautogui.doubleClick(x=200, y=200)
# トリプルクリック
pyautogui.tripleClick()
# カーソルを移動してトリプルクリック
pyautogui.tripleClick(x=300, y=300)
スクロール
pyautogui.scroll()
# カーソルを移動してスクロール。100はスクロール量
pyautogui.scroll(100, x=700, y=100)
ドラッグ
pyautogui.dragTo()、pyautogui.dragRel()
# 絶対位置 x=100, y=200 まで10秒かけてドラッグ
pyautogui.dragTo(100, 200, duration=10)
# 今のカーソル位置からの相対位置 x=100, y=200 まで10秒かけてドラッグ
pyautogui.dragRel(100, 200, duration=10)
一時停止
pyautogui.PAUSE()
# 5.5秒間一時停止
pyautogui.PAUSE = 5.5
キーボード入力
pyautogui.typewrite()
# Hellow world + Enter を入力。文字入力と文字入力の間時間をインターバルを3秒あける
pyautogui.typewrite('Hello world!\n', interval=3)
# キー名をリストで渡すことも可能
# a→b→c→左キー→backspaceキー→Enterキー→f1の順で入力。入力間のインターバル時間=2秒。
pyautogui.typewrite(['a', 'b', 'c', 'left', 'backspace', 'enter', 'f1'], interval=2)
pyautogui.write()
# 文字入力はwriteでもできる(Hello worldと0.25秒間隔で入力)
pyautogui.write('Hello world', interval=0.25)
pyautogui.press()
# キーボードのボタン押下。(以下はescボタン押下)
pyautogui.press('esc')
pyautogui.hold()
# キーボードのボタンを長押し。(以下はshiftボタンを長押し)
pyautogui.hold('shift')
pyautogui.KEYBOARD_KEYS
# キー名リスト
print(pyautogui.KEYBOARD_KEYS)
実行結果

pyautogui.KEY_NAMES()
# キー名のリスト表示はpyautogui.KEY_NAMESでもpyautogui.KEYBOARD_KEYSと同じ
print(pyautogui.KEYBOARD_KEYS)
実行結果

pyautogui.hotkey()
# Ctrl-SやCtrl-Shift-1などのキーボードホットキーは、キー名を渡すことで実行可能
pyautogui.hotkey('ctrl', 'c')
pyautogui.hotkey('ctrl', 'v')
pyautogui.keyDown()、pyautogui.keyUp()
# 個々のキーの上下イベント
pyautogui.keyDown('c')
pyautogui.keyUp('c')
メッセージBOXを表示
pyautogui.alert()
# 警告表示
pyautogui.alert('テストです')
実行結果

pyautogui.confirm()
# 確認表示。OKボタンとキャンセルボタンを表示
pyautogui.confirm('テストです。OKボタンとキャンセルボタンを表示')
実行結果

pyautogui.prompt()
# 入力BOX、OKボタン、キャンセルボタンを表示
pyautogui.prompt('テストです')
実行結果

スクリーンショット
pyautogui.screenshot()
# PC画面のスクリーンショットを撮る。変数に格納すると良い
im = pyautogui.screenshot()
# PC画面のスクリーンショットを撮って画像保存
pyautogui.screenshot('test.png')
pyautogui.locateCenterOnScreen()
# 画面上で画像を探し、画像の中心座標を返す pyautogui.locateCenterOnScreen('test.png')
実行結果
(898, 423)
※見つからない場合は、「None」を返す
PythonやAIをもっと勉強したい方🤗

コメント