こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- PC上での作業を自動化したい!
- Pythonを用いてPCの画面・キーボード操作を自動化する方法が知りたい!
【GUIオートメーション】マウスとキーボードの自動操作
GUIオートメーションは、定型化された作業の自動化やコンピューターソフトウェアのテストを目的に使用される技術の一つです。
ユーザーが通常行うPC画面上でのマウスやキーボード操作を自動的に再現できます。本記事では、Pythonを用いてGUIオートメーションを実現する方法を解説します。
PyAutoGUIとは
Pythonを用いたGUIオートメーション実現に際してPyAutoGUIを利用します。PyAutoGUIとは、GUI上で以下の操作を自動化できるライブラリです。
- キーボード入力
- マウス操作(マウス移動・ボタンクリック)
- 画面操作(スクリーンショット)
【参考】GUIオートメーションの学習におすすめの書籍
PythonによるGUIオートメーションをはじめ、その他の自動化方法について詳しく知りたい方向けにおすすめの書籍を紹介します。
【PyAutoGUI】インストール
本記事ではPCのキーボード操作を自動化する手段として「PyAutoGUI」を用います。
Windowsの場合
pip install pyautogui
MacOSの場合
MacOSをお使いの方は、PyAutoGUIと依存性のある以下のライブラリも併せてインストールが必要です。
pip install pyobjc-framework-Quartz pyobjc-core pyobjc pyautogui
Linuxの場合
sudo pip install python3-xlib
sudo apt-get install scrot python3-tk python3-dev
【Python実践】PyAutoGUIでキーボードを操作する方法
PyAutoGUIを用いてキーボード操作を自動化する方法について解説していきます。
Pythonライブラリのインストール
はじめに、PyAutoGUIライブラリを読み込むためのコードを記述します。
import pyautogui
pyautogui.PAUSE = 1 # 関数呼出直後に何秒停止するかを指定
pyautogui.FAILSAFE = True # フェールセーフ機能
キーボードから文字列を送信する
マウス操作で特定の場所をクリックし、キーボードから文字を入力する方法について解説します。
コード(1)
クリップボードを経由してキーボードから文字を入力する方法を示します。
Windows, Linuxの場合
import pyperclip
import pyautogui
from time import sleep
# 待機時間
sleep(2)
# 入力したいメッセージ
message = "こんにちは"
# メッセージをコピー
pyperclip.copy(message)
# メッセージを貼り付け
pyautogui.hotkey("ctrl","v")
MacOSの場合
import pyperclip
import pyautogui
from time import sleep
# 待機時間
sleep(2)
# 入力したいメッセージ
message = "こんにちは"
# メッセージをコピー
pyperclip.copy(message)
# メッセージを貼り付け
pyautogui.hotkey("command","v")
コード(2)
pyautogui.typewrite()
関数を用いてキーボードから文字を入力する方法も併せて紹介します。(この方法はバージョン0.9.35時点で英語のみ入力可能です)
# 指定の場所をマウスでクリック
pyautogui.click(500, # X軸座標位置
600, # Y軸座標位置
button = "left", # 左クリック
);
# キーボードから文字列を送信
pyautogui.typewrite("Hello")
参考
本記事ではPyAutoGUIを用いたキーボード操作を中心に解説していますが、マウス操作も併せて理解できると、作業がより効率化できるでしょう。
ショートカットキーを実行する
ショートカットキーを指定し、キーボードを操作する場合pyautogui.hotkey()
関数が有効です。
基本操作
例えば、Ctrl + C
を実行したい場合、次のように記述できます。
pyautogui.hotkey("ctrl","c")
利用可能なキーについて
PyAutoGUIで利用可能なキーを確認したい場合、以下のコードが便利です。
# PyAutoGUIで指定可能なキーを確認する
pyautogui.KEYBOARD_KEYS
【Python実践】PyAutoGUIで画面を操作する方法
PyAutoGUIを用いて画面操作を自動化する方法について解説していきます。
画面のスクリーンショットを取得する
スクリーンショットを撮影したい場合、pyautogui.screenshot()
関数が有効です。
# スクリーンショットを撮る
image = pyautogui.screenshot()
# スクリーンショットを保存
image.save("screenshot.png")
Macbookをお使いの場合、以下をインストールするとスクリーンショット関数が利用できます。
brew install scrot
【参考】Pythonで面倒な作業を自動化!手法一挙公開中!
当サイトでは日々面倒な作業をPythonで自動化する方法を多数配信しております。日々の作業が飛躍的効率化できること間違いなしですので、以下気になった記事があれば併せてご覧ください。
【面倒なタスクをPythonで解決!】作業効率化の人気記事一覧
【参考】Pythonとは?・実現できること
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら