プログラミング Python

Pythonでキーボードを自動操作する【PyAutoGUI】

Pythonでキーボードを操作するPyAutoGUIによる自動操作

PyAutoGUIは、Pythonからマウスやキーボードを自動操作できるライブラリです。

キー入力やマウスを使ったコンピューターの操作手法をGUIといいます。
いま行っている画面操作がそうですね。

PyAutoGUIでは、このGUI操作をコンピュータに自動的に実行させることができます:computer:

PyAutoGUIを使うにはインストールが必要

〇前提条件
 Pythonの開発環境があること

まだPythonの開発環境がない方は以下の記事で、簡単に導入できます↓

PyAutoGUIを使うには、プログラム実行前にライブラリのインストールが必要になります。

Windowsの場合、下記のインストールを済ませてからプログラムを実行します。

pip install pyautogui

Macの場合、さらに2つのライブラリも追加でインストールしておきます。

pip install pyobjc-core
pip install pyobjc

キーボードを操作する関数

キーボードを操作するために使用する関数です。

メソッド説明
pyautogui.press()キーボードの()を押す
pyautogui.typewrite()キーボードの()を順番にタイピング
pyautogui.hotkey()キーボードの()を同時に押す
pyautogui.keyDown()キーボードの()を押したままにする
pyautogui.keyUp()キーボードの()を離す
  • pyautogui.press(‘キー’)は、キーボード上の指定したキーを1つ押す関数です。
  • pyautogui.hotkey(‘キー1′,’キー2’)は、キーボードの複数のキーを同時押しできます。
  • pyautogui.typewrite(‘文字列’)は、1文字以上の文字列を入力できます。

以下は、PyAutoGUIを使用して各キーを操作する際に使用できる表現です。

キー表現
英字'a', 'b', 'c', 'd', …
英数字'1', '2', '3', '4', …
Ctrlキー'ctrlleft', 'ctrlright'
Shiftキー'shiftleft', 'shiftright'
Enterキー'enter', 'return', '\n'
Spaceキー'space'
Backspaceキー'backspace'
Deleteキー'delete'
Altキー'altleft', 'altright'
Tabキー'tab', '\t'
Escキー'esc'
Homeキー'home'
Endキー'end'
Pauseキー'pause'
CapsLockキー'capslock'
NumLockキー'numlock'
Insertキー'insert'
PrintScreenキー'printscreen'
Windowsキー'winleft', 'winright'
PageUpキー'pageup'
PageDownキー'pagedown'
矢印キー(↑↓←→)'up', 'down', 'left', 'right'
Functionキー'f1', 'f2', 'f3', … 'f12'
Volumeキー'volumeup', 'volumedown', 'volumemute'

わかりやすく書いてみたプログラムの例です。

上から順番に実行されていきます。

import pyautogui  # PyAutoGUIライブラリをインポート
import pyperclip  # pyperclipライブラリをインポート(クリップボード操作用)
import time  # timeモジュールをインポート(時間待機用)

# ユーザーに検索クエリを入力するように要求
input_string = input("explorer search:")

# 入力されたクエリをクリップボードにコピー
pyperclip.copy(input_string)

# ウィンドウズキー(Winキー)と「s」を組み合わせて、Windowsの検索ボックスを開く
pyautogui.hotkey('winleft', 's')

# "explorer" というテキストを検索ボックスに入力
pyautogui.typewrite('explorer')

# Enterキーを押して、検索を実行
pyautogui.hotkey('enter')

# 5秒間待機(検索結果が表示されるのを待つため)
time.sleep(5)

# Ctrl+Vを使ってクリップボードの内容(ユーザーが入力した検索クエリ)を貼り付け
pyautogui.hotkey('ctrl', 'v')

# Enterキーを押して、クエリを実行
pyautogui.hotkey('enter')

# 2秒間待機
time.sleep(2)

# Tabキーを2回押して、最初の検索結果にフォーカスを当て、Enterキーを押して選択
pyautogui.hotkey('tab', 'tab')
pyautogui.hotkey('enter')
  • コマンドプロンプトから実行
  • マウスでファイルを選択して実行

今回はマウスでファイルを選択して実行します。

プログラムが実行されると以下のウィンドウが表示されます。

input_string = input("explorer search:") //ユーザーに検索クエリを入力するように要求

image.png

「weather」と入力してみます。

pyperclip.copy(input_string) //入力されたクエリがクリップボードにコピーされます

image.png

pyautogui.hotkey('winleft', 's') //ウィンドウズキー(Winキー)と「s」を組み合わせて、Windowsの検索ボックスが開きます

image.png

pyautogui.typewrite('explorer') //"explorer" というテキストを検索ボックスに入力

image.png

pyautogui.hotkey('enter') //Enterキーを押して、検索を実行
time.sleep(5) //5秒間待機(検索結果が表示されるのを待つため)

image.png

pyautogui.hotkey('ctrl', 'v') //Ctrl+Vを使ってクリップボードの内容(weather)を貼り付け
pyautogui.hotkey('enter') //Enterキーを押して、クエリを実行
time.sleep(2) //2秒間待機

image.png

pyautogui.hotkey('tab', 'tab') //Tabキーを2回押して、最初の検索結果にフォーカスを当てる
pyautogui.hotkey('enter') //Enterキーを押して選択されます

image.png

一番上に検索結果がきたウェザーニュースが表示されました。

image.png

少しキャプチャではわかりにくい部分もあると思いますが、誰かの参考になればと思います:smile:


-プログラミング, Python
-