PyAutoGUIでPC操作を自動化 ~PythonでRPA~

スポンサーリンク
Python/DeepLearning

みなさん、こんにちは!みやしんです。

今回はPyAutoGUIという、とても便利なライブラリをご紹介します!

タイトルの通り、様々なPC操作を自動化してくれるライブラリです。

みやしん
みやしん

Pythonは便利なライブラリがたくさんあって凄いですね!

それでは、早速始めていきたいと思います。

PythonやAIをもっと勉強したい方🤗

Pyサブスクール:サブスク8,030円/月でPythonを始められるプログラミングスクール
サブスク8,030円/月でPythonを始められるプログラミングスクール。現役エンジニアへの質問も自由に出来ます。話題のPythonを学びたいけどスクールに60万円は高すぎる!でも独学だと挫折が恐い。そんな不満と不安を解決するサブスク型のプ...

スポンサーリンク

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をもっと勉強したい方🤗

Pyサブスクール:サブスク8,030円/月でPythonを始められるプログラミングスクール
サブスク8,030円/月でPythonを始められるプログラミングスクール。現役エンジニアへの質問も自由に出来ます。話題のPythonを学びたいけどスクールに60万円は高すぎる!でも独学だと挫折が恐い。そんな不満と不安を解決するサブスク型のプ...

Python/DeepLearning
スポンサーリンク
記事が良かったらSNSでシェアを宜しくお願いします!
みやしんをフォローすると役立つ情報がいっぱいにゃ!
スポンサーリンク

コメント

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