【最短5分】PyAutoGUIによるキーボード入力自動化のパターン6選

【最短5分】PyAutoGUIによるキーボード入力自動化のパターン6選

 

★悩み★
・PyAutoGUIでどのようなキーボード入力操作を自動化できる?
・ショートカットや特殊キー(f5など)といった複数キーの同時押しは可能?
・PyAutoGUIを使ってメモ帳に日本語を連続入力ってできる?



こういった「悩み」に答えます。
 

★本記事の内容★
① PyAutoGUIとは?
② PyAutoGUIで可能なキーボード入力操作【よく使う6事例を紹介】



これからご紹介する「【最短5分】PyAutoGUIによるキーボード入力自動化のパターン6選順」を実践したことで、30分以内で「指定した文字列をメモ帳へ入力」(下の動画参照)できました。
 

PyAutoGUIのhotkeyでショートカットキーと特殊キーをキーボード入力
PyAutoGUIのhotkeyでショートカットキーと特殊キーをキーボード入力



記事の前半では「PyAutoGUIとは?」や「PyAutoGUIのインストール方法」を解説します。

記事の後半では「PyAutoGUIでよく使うキーボード入力操作6パターン」をプログラムと実行例をもとに紹介します。
 

この記事を読み終えることで、「PyAutoGUIでキーボード入力操作を自動化できる」状態になります。

 

 


 

PyAutoGUIとは?

PyAutoGUIとは?


「PyAutoGUIとは?」/「PyAutoGUIの特徴」/「PyAutoGUIのユースケース(利用場面)」に関しては、以下の記事をご覧ください。
>> 【要点】PyAutoGUIとは?初心者向けに特徴から使い方までを図解

 

また、PyAutoGUIのインストール方法に関しては、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順
>> 【最短5分】UbuntuにPyAutoGUIをインストールする手順
>> 【最短5分】MacにPyAutoGUIをインストールする手順

 

ウェブブラウザなどの画面操作を自動化をしたい場合、PyAutoGUIを使って無料で実現できます。
以降で、PyAutoGUIでキーボード入力操作を自動化する方法をご紹介しますね。


 

PyAutoGUIで可能なキーボード入力操作

PyAutoGUIで可能なキーボード入力操作


「PyAutoGUIで可能なキーボード入力操作」に関してご紹介します。
 

★PyAutoGUIで可能なキーボード入力操作に関するご紹介事項★
・入力できるキーボードの一覧(KEYBOARD_KEYSで把握) 
・writeで文字列を入力
・pressでキーボードを押す
・keyDownとkeyUpでキーボードを下げる/上げる
・hotkeyでショートカットや特殊キーを入力(複数キー同時入力)
・typewriteでキーボードを連続入力
・pyperclipのcopyで日本語を入力



PyAutoGUIを使うことで、「矢印の下キー」「f5などの特殊キー」「同時に複数のキー(ショートカットキー)」入力といったキーボード操作を自動化できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年7月8日
動作確認済み環境:Windows Pro 11



以降で、上記「PyAutoGUIで可能なキーボード入力操作に関するご紹介事項」の各項目に関してご説明します。
 

入力できるキーボードの一覧(KEYBOARD_KEYSで把握)

「入力できるキーボードの一覧(KEYBOARD_KEYSで把握)」に関して説明します。
 

PyAutoGUIからは、「194」種類のキーをキーボード入力できます。



PyAutoGUIからキーボード入力できる「キーの種類」は、以下の公式サイトから確認できます。
>> PyAutoGUIから入力できるキーの種類(公式サイト)
 

上記サイトより、PyAutoGUIからキーボード入力できるキーは、以下となります。

['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
'browserback', 'browserfavorites', 'browserforward', 'browserhome',
'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
'command', 'option', 'optionleft', 'optionright']

 

上記より、PyAutoGUIから「日本語」をキーボード入力できません。
日本語を入力する方法に関しては、本記事の中盤で解説しますね。



以上が、「入力できるキーボードの一覧(KEYBOARD_KEYSで把握)」となります。
 

writeで文字列を入力

「writeで文字列を入力」に関して解説しますね。
 

PyAutoGUIで文字列をキーボード入力したい場合、「write」を使います。



「write」の構文は、以下となります。
 

★writeの構文(リファレンス)★
・機能
 指定した文字列をキーボード入力する
・使い方
 write(入力したい文字列, <任意:interval=秒数>)
・例
 write(‘PyAutoGUI keyboard’, interval=0.5)
・実行結果
 0.5秒間隔で「PyAutoGUI keyboard」をキーボード入力する
・参照
 write関数のリファレンス(公式サイト)



それでは、上記のwriteを使って、PyAutoGUIで文字列のキーボード入力を自動化してみましょう。
 

以下のプログラムを作成し、「pyautogui-keyboard-write.py」というファイル名で保存してください。

import pyautogui
import subprocess
import time

# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)

# writeで文字列を入力
pyautogui.write('PyAutoGUI keyboard', interval=0.5)

print('PyAutoGUIのwriteでキーボード入力しました。')



続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。

python pyautogui-keyboard-write.py



コマンド実行後、下の動画のようにメモ帳に「PyAutoGUI keyboard」がキーボード入力された場合、「正常に作成したプログラムを実行できた」と判断できます。
 

PyAutoGUIのwriteで文字列を入力
PyAutoGUIのwriteで文字列をキーボード入力する例



以上が、「writeで文字列を入力」となります。
 

pressでキーボードを押す

「pressでキーボードを押す」に関して説明します。
 

PyAutoGUIでenterやtabなどのキー(KEYBOARD_KEYS内の範囲)を入力したい場合、「press」を使います。



「press」の構文は、以下となります。
 

★pressの構文(リファレンス)★
・機能
 KEYBOARD_KEYS範囲内のキーを入力する
・使い方
 press(入力したいキー, <任意:presses=回数>, <任意:interval=秒数>)
・例
 press(‘enter’, presses=5, interval=0.5)
・実行結果
 0.5秒間隔で「Enterキー」を5回入力する
・参照
 press関数のリファレンス(公式サイト)



それでは、上記のpressを使って、PyAutoGUIでenterやtabなどのキーボード入力を自動化してみましょう。
 

以下のプログラムを作成し、「pyautogui-keyboard-press.py」というファイル名で保存してください。

import pyautogui
import subprocess
import time

# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)

# pressで文字列を入力
pyautogui.press('enter', presses=5, interval=0.5)
pyautogui.press('tab')
pyautogui.press(['P','y','A','u','t','o','G','U','I',' ','k','e','y','b','o','a','r','d'])

print('PyAutoGUIのpressで文字列をキーボード入力しました。')



続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。

python pyautogui-keyboard-press.py



コマンド実行後、下の動画のようにメモ帳に「enter」「tab」「PyAutoGUI keyboard」がキーボード入力された場合、「正常に作成したプログラムを実行できた」と判断できます。
 

PyAutoGUIのpressでキー入力
PyAutoGUIのpressでキー入力する例



以上が、「pressでキーボードを押す」となります。
 

keyDownとkeyUpでキーボードを下げる/上げる

「keyDownとkeyUpでキーボードを下げる/上げる」に関してご紹介します。
 

PyAutoGUIでショートカットキーなどの複数キーを同時入力したい場合、keyDownとkeyUpを使います。
ただし、hotkeyと用途が被るのであまり使う機会はないです。



「keyDown」の構文は、以下となります。
 

★keyDownの構文(リファレンス)★
・機能
 KEYBOARD_KEYS範囲内のキーを下げる
・使い方
 keyDown(入力したいキー)
・例
 keyDown(‘ctrl’)
・実行結果
 「ctrlキー」を下げる
・参照
 keyDown関数のリファレンス(公式サイト)



また、「keyUp」の構文は、以下となります。
 

★keyUpの構文(リファレンス)★
・機能
 KEYBOARD_KEYS範囲内のキーを上げる
・使い方
 keyUp(入力したいキー)
・例
 keyUp(‘ctrl’)
・実行結果
 「ctrlキー」を上げる
・参照
 keyUp関数のリファレンス(公式サイト)



それでは、上記のkeyUpとkeyDownを使って、PyAutoGUIで複数キーの同時入力を自動化してみましょう。
 

以下のプログラムを作成し、「pyautogui-keyboard-keyup-keydown.py」というファイル名で保存してください。

import pyautogui
import subprocess
import time

# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)

# keyUpとkeyDownでctrl, shift, sを同時に押す
pyautogui.keyDown('ctrl')
pyautogui.keyDown('shift')
pyautogui.keyDown('s')

# 下げた状態のキーを上げる
pyautogui.keyUp('ctrl')
pyautogui.keyUp('shift')
pyautogui.keyUp('s')


print('PyAutoGUIのkeyUpとkeyDownで複数キーを同時入力しました。')

 

プログラム内でkeyDownで下げたキーをkeyUpで上げなかった場合、プログラム実行後のキーボード操作がおかしくなります。
おかしくなった場合は、「ctrl」「shift」「s」を順番にキーボード入力することで解消できます。



続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。

python pyautogui-keyboard-keyup-keydown.py



コマンド実行後、下の動画のようにメモ帳の「名前を付けて保存」ウィンドウが表示された場合、「正常に作成したプログラムを実行できた」と判断できます。
 

PyAutoGUIのkeyUpとkeyDownで複数キーを同時入力
PyAutoGUIのkeyUpとkeyDownで複数キーを同時入力する例



以上が、「keyDownとkeyUpでキーボードを下げる/上げる」となります。
 

hotkeyでショートカットや特殊キーを入力(複数キー同時入力)

「hotkeyでショートカットや特殊キーを入力(複数キー同時入力)」に関して解説します。
 

先ほどのkeyDownとkeyUpと同じことをhotkeyでも実現できます。
hotkeyを使うことで、keyDownとkeyUpで実現したことをより少ない行数で実現できます。



「hotkey」の構文は、以下となります。
 

★hotkeyの構文(リファレンス)★
・機能
 KEYBOARD_KEYS範囲内のキーの上げ下げをする
・使い方
 hotkey(入力したいキー1, 入力したいキー2, … )
・例
 hotkey(‘ctrl’, ‘shift’, ‘s’)
・実行結果
 「ctrlキー」「shitfキー」「s」キーを下げたのちに上げる
・参照
 hotkey関数のリファレンス(公式サイト)



それでは、上記のhotkeyを使って、PyAutoGUIで複数キーの同時入力を自動化してみましょう。
 

以下のプログラムを作成し、「pyautogui-keyboard-hotkey.py」というファイル名で保存してください。

import pyautogui
import subprocess
import time

# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)

 
# hotkeyで特殊キー(shift,a)を入力
pyautogui.hotkey('ctrl', 'a')


# hotkeyでctrl, shift, sのショートカットキーを入力
pyautogui.hotkey('ctrl', 'shift', 's')


print('PyAutoGUIのhotkeyで特殊キーとショートカットキー入力しました。')



続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。

python pyautogui-keyboard-hotkey.py



コマンド実行後、下の動画のようにメモ帳の「名前を付けて保存」ウィンドウが表示された場合、「正常に作成したプログラムを実行できた」と判断できます。
 

PyAutoGUIのhotkeyでショートカットキーと特殊キーをキーボード入力
PyAutoGUIのhotkeyでショートカットキーと特殊キーをキーボード入力



以上が、「hotkeyでショートカットや特殊キーを入力(複数キー同時入力)」となります。
 

typewriteでキーボードを連続入力

「typewriteでキーボードを連続入力」に関して説明します。
 

PyAutoGUIでキーボードを連続して入力したい場合、「typewrite」を使います。
挙動は、先ほど紹介した「write」と同じです。



「typewrite」の構文は、以下となります。
 

★typewriteの構文(リファレンス)★
・機能
 指定した文字列をキーボード入力する
・使い方
 typewrite(入力したい文字列, <任意:interval=秒数>)
・例
 typewrite(‘PyAutoGUI keyboard’, interval=0.5)
・実行結果
 0.5秒間隔で「PyAutoGUI keyboard」をキーボード入力する



それでは、上記のtypewriteを使って、PyAutoGUIでキーボードを連続入力してみましょう。
 

以下のプログラムを作成し、「pyautogui-keyboard-typewrite.py」というファイル名で保存してください。

import pyautogui
import subprocess
import time

# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)

# writeで文字列を入力
pyautogui.typewrite('PyAutoGUI keyboard', interval=0.5)

print('PyAutoGUIのtypewriteで文字列をキーボード入力しました。')



続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。

python pyautogui-keyboard-typewrite.py



コマンド実行後、下の動画のようにメモ帳に「PyAutoGUI keyboard」がキーボード入力された場合、「正常に作成したプログラムを実行できた」と判断できます。
  

PyAutoGUIのtypewriteで文字列を入力
PyAutoGUIのtypewriteで文字列を入力



以上が、「typewriteでキーボードを連続入力」となります。
 

pyperclipのcopyで日本語を入力

「pyperclipのcopyで日本語を入力」に関して説明します。
 

PyAutoGUIからは、日本語をキーボード入力できません。
そのため、「pyperclip」というライブラリを使う必要があります。



Pythonのライブラリの1つである「pyperclip」をインストールするために、以下のコマンドを順番に実行してください。

pip install pyperclip
pip list



コマンド実行後、「pyperclip バージョン名」が表示された場合、「正常にpaperclipをインストールできた」と判断できます。
 

ちなみに、日本語を入力するために、pyperclipのcopy関数を使います。
copy関数の構文は、以下となります。
 

★copyのリファレンス★
・機能
 指定した文字列をクリップボードにコピーする
・使い方
 copy(クリップボードにコピーしたい文字列)
・例
 copy(“駆け出し物語”)
・実行結果
 駆け出し物語という文字列をクリップボードにコピーする
・参照
 pyperclipのcopy関数のリファレンス(公式サイト)



それでは、上記のcopyを使って、PyAutoGUIで日本語文字列をキーボード入力してみましょう。
 

以下のプログラムを作成し、「pyautogui-keyboard-copy.py」というファイル名で保存してください。

import subprocess
import time
import pyperclip
import pyautogui

# メモ帳を開く
subprocess.Popen([r'c:\windows\system32\notepad.exe'], shell=True)
time.sleep(5)

# copyで日本語文字列をクリップボードにコピー
pyperclip.copy("駆け出し物語")

# hotkeyで「ショートカットキーのペースト」を入力
pyautogui.hotkey("ctrl", "v")

print('pyperclipのcopy関数とPyAutoGUIのhotkey関数で日本語文字列を入力しました。')



続いて、コマンドプロンプトを起動し、作成したプログラムを以下のコマンドで実行してみましょう。

python pyautogui-keyboard-copy.py



コマンド実行後、下の動画のようにメモ帳に「駆け出し物語」がキーボード入力された場合、「正常に作成したプログラムを実行できた」と判断できます。
  

PyAutoGUIのcopyで日本語文字列を入力
pyperclipのcopyとPyAutoGUIのhotkeyで日本語文字列を入力



以上が、「pyperclipのcopyで日本語を入力」となります。
 

上記6つのパターンが、PyAutoGUIでキーボード入力を自動化をする際によく使われます。



ちなみに、「PyAutoGUIでExcelやWordの操作を自動化する方法は?」や「Pythonを基礎から体系的に学ぶ方法は?」などを知りたい方には、以下の記事で紹介している本や教材がオススメです。
>> PyAutoGUIの入門に役に立つオススメ本や教材6選

  

【まとめ】PyAutoGUIによるキーボード入力自動化のパターン6選【最短5分】

【まとめ】PyAutoGUIによるキーボード入力自動化のパターン6選【最短5分】


いかがでしたでしょうか?

PyAutoGUIで「1文字」「文字列」「日本語文字列」「f5などの特殊キーやショートカットキー」のキーボード入力のプログラムと実行例を紹介し、以下の悩みを解決しました。
 

★悩み★
・PyAutoGUIでどのようなキーボード入力操作を自動化できる?
・ショートカットや特殊キー(f5など)といった複数キーの同時押しは可能?
・PyAutoGUIを使ってメモ帳に日本語を連続入力ってできる?



キーボード入力操作の自動化をしたい場合、PyAutoGUIを検討してみてください。
 

 


 

コメント

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