Pythonでキーボードを操作するPyAutoGUIによる自動操作
PyAutoGUIは、Pythonからマウスやキーボードを自動操作できるライブラリです。
キー入力やマウスを使ったコンピューターの操作手法をGUIといいます。
いま行っている画面操作がそうですね。
PyAutoGUIでは、このGUI操作をコンピュータに自動的に実行させることができます
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:") //ユーザーに検索クエリを入力するように要求
「weather」と入力してみます。
pyperclip.copy(input_string) //入力されたクエリがクリップボードにコピーされます
pyautogui.hotkey('winleft', 's') //ウィンドウズキー(Winキー)と「s」を組み合わせて、Windowsの検索ボックスが開きます
pyautogui.typewrite('explorer') //"explorer" というテキストを検索ボックスに入力
pyautogui.hotkey('enter') //Enterキーを押して、検索を実行
time.sleep(5) //5秒間待機(検索結果が表示されるのを待つため)
pyautogui.hotkey('ctrl', 'v') //Ctrl+Vを使ってクリップボードの内容(weather)を貼り付け
pyautogui.hotkey('enter') //Enterキーを押して、クエリを実行
time.sleep(2) //2秒間待機
pyautogui.hotkey('tab', 'tab') //Tabキーを2回押して、最初の検索結果にフォーカスを当てる
pyautogui.hotkey('enter') //Enterキーを押して選択されます
一番上に検索結果がきたウェザーニュースが表示されました。