PyAutoGUIはPythonからマウスやキーボードを自動操作できるライブラリになります。
いま私たちが行なっている、キー入力やマウスを使ったコンピューターの操作手法をGUIといいます。
PyAutoGUIでは、私たちが使っているGUI操作をコンピュータに自動でやらせることができます。
PyAutoGUIを使うにはインストールが必要
PyAutoGUIは外部ライブラリなので、プログラム実行前にインストールが必要になります。
!pip install pyautogui
Windowsの場合、上記のインストールを済ませてからプログラムを実行します。
!pip install pyobjc-core
!pip install pyobjc
Macの場合、さらに2つのライブラリも追加でインストールしておきます。
マウスを操作する関数
pyautogui.moveTo(x,y) | マウス座標を(x,y)まで移動 |
pyautogui.moveRel(x,y) | マウス座標を(x,y)だけ移動する |
pyautogui.position() | マウスの現在位置(x,y)を取得 |
pyautogui.click() | マウスボタンをクリックする |
pyautogui.mouseDown() | マウスボタンを押したままにする |
pyautogui.mouseUp() | マウスボタンを離す |
マウスを指定した座標まで移動する
pyautogui.moveTo(x,y)で、マウスを指定した座標(x,y)まで移動します。
元のマウス座標に関係なく、引数の座標(x,y)までマウスを移動します。
マウスを指定した座標だけ移動する
pyautogui.moveRel(x,y)で、マウスを指定した座標分(x,y)だけ移動します。
元のマウス座標から、引数の座標分(x,y)だけマウスを移動します。
マウスの現在の座標を調べる
pyautogui.position()で、マウスの現在の座標(x,y)を取得します。
実行した時点のマウス座標を取得して、返り値(x,y)を返してくれます。
マウスを指定したボタン・回数でクリックする
pyautogui.click()では、引数でクリックするボタン・回数も設定できます。
- x=クリックしたい位置のx座標
- y=クリックしたい位置のy座標
- button=クリックしたいボタン(left/right/middle)
- clicks=クリックする回数
- interval=クリックする間隔の秒数
- pause=クリック後に一時停止する秒数
pyautogui.click() | マウスを左クリック |
pyautogui.rightClick() | マウスを右クリック |
pyautogui.middleClick() | マウス中央ボタンをクリック |
pyautogui.doubleClick() | マウスをダブルクリック |
pyautogui.tripleClick() | マウスをトリプルクリック |
キーボードを操作する関数
pyautogui.press() | キーボードの()を押す |
pyautogui.typewrite() | キーボードの()を順番にタイピング |
pyautogui.hotkey() | キーボードの()を同時押しする |
pyautogui.keyDown() | キーボードの()を押したままにする |
pyautogui.keyUp() | キーボードの()を離す |
キーボードを入力してタイピング
pyautogui.press(‘キー’)は、キーボード上の指定したキーを1つ押す関数です。
pyautogui.hotkey(‘キー1′,’キー2’)では、キーボードの複数のキーを同時押しできます。
pyautogui.typewrite(‘文字列’)なら、1文字以上の文字列を入力できます。
キーボード上の1文字では表現できない特殊キーも入力できます。
Enterキー | ‘enter’,’retuen’,’\n’ |
Escキー | ‘esc’ |
Shiftキー | ‘shiftleft’,’shiftright’ |
Altキー | ‘altleft’,’altright’ |
Ctrlキー | ‘ctrlleft’,’ctrlright’ |
Tabキー | ‘tab’,’\t’ |
Backspaceキー・Deleteキー | ‘backspace’,’delete’ |
PageUpキー・PageDownキー | ‘pageup’,’pagedown’ |
Homeキー・Endキー | ‘Home’,’end’ |
矢印キー(↑↓←→) | ‘up’,’down’,’left’,’right’ |
ファンクションキー | ‘f1′,’f2’,’f3’など |
音量コントロールキー | ‘volumeup’,’volumedown’,’volumemute’ |
Pauseキー | ‘pause’ |
CapsLockキー | ‘capslock’ |
NumLockキー | ‘numlock’ |
ScrollLockキー | ‘scrolllock’ |
Insキー | ‘insert’ |
PrintScreenキー | ‘printscreen’ |
Winキー(Windowsのみ) | ‘winleft’,’winright’ |
Commandキー(Macのみ) | ‘command’ |
Optionキー(Macのみ) | ‘option’ |
日本語はタイピングできないので注意
pyautogui.typewrite()では、英数字しか入力できないので注意です。
日本語を自動入力するには、文字列をクリップボードにコピー&ペーストして行います。
pyautogui.hotkey(‘ctrl’, ‘v’)でペーストします。(※pyperclipライブラリもインポートしておきます)
スクリーンを操作する関数
pyautogui.scroll() | 画面をスクロール |
pyautogui.size() | 画面のサイズを取得 |
pyautogui.screenshot() | 画面のスクリーンショットを取得 |
pyautogui.locateCenterOnScreen() | 画像とマッチする座標を画面上から取得 |
pyautogui.pause() | PyAutoGUIの処理を一時停止する |
画像認識して座標を取得
pyautogui.locateCenterOnScreen()では、指定した画像とマッチする座標を画面上から取得します。
引数で渡した画像をコンピューターが画像認識して、同じ部分を探し出してくれます。
さらにその座標を自動で取得してくれるので、座標を調べる手間が省けます。
処理を一時停止する
pyautogui.pause()で、PyAutoGUIを一時停止することができます。
これはPyAutoGUIの操作スピードに他の処理が追いつかないことがあるためです。
この一時停止では、PyAutoGUI以外の処理は停止しません。
マウスの座標を調べてくれるプログラム
PyAutoGUIを使ったプログラムの例をご紹介します。
import pyautogui print('Ctrl+Cを押すと終了します') try: while True: x,y = pyautogui.position() position = 'X:'+str(x).rjust(4) + ' Y:'+str(y).rjust(4) print(position,end='') print('\b' * len(position),end='',flush=True) pyautogui.sleep(1) except KeyboardInterrupt: print('\n終了')
1秒ごとにマウスの現在位置を表示するPythonプログラムです。
キーボードのCtrl+Cを押すと終了します。
マウスを置くだけでx座標・y座標がわかるので、プログラムで指定したい座標を調べる時に役立ちます。
Pythonで自由に自動化、分析できるようになりたい。そんなあなたに!
Pythonで自由に自動化できるようになりたい!
できれば自分でもプログラマーのようなちゃんとしたコードが書けるようになりたい!
そんな人には、Pythonによる自動化と分析がゼロから体系的にしっかり学べるデイトラPythonコースがおすすめです。
・ゼロから学んでいくことに不安がある。
・何を勉強すればちゃんと書けるようになるのか正直分からない。
そういう方におすすめの講座になっています。
10万円以下の価格で現役プログラマーによるメンターにいつでも質問できる講座を受けられます。
この講座を通してやることで、あなたもしっかりとした自動化、分析のコードを書けるようになり、業務や、生活に活かしていくことができます。
やっぱり一人でやっていると心配なのが、全然コードが分からない時に挫折することですよね。
でも、このコースであればメンターにいつでも質問できるので、挫折率は低いです。
ずーっと成長できないと不満だという方ほどデイトラPythonコースをおすすめします。
コメント