Pythonでマウスやキーボードを操作できるPyAutoGUIによる自動操作マニュアル

Python

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

いま私たちが行なっている、キー入力やマウスを使ったコンピューターの操作手法をGUIといいます。

PyAutoGUIでは、私たちが使っているGUI操作をコンピュータに自動でやらせることができます。

『ここクリックして』・『これタイピングして』といった命令をPythonプログラムを使って、コンピュータに任せることができます。

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() マウスボタンを離す

マウスを指定した座標まで移動する

moveTo
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()では、英数字しか入力できないので注意です。

日本語を自動入力するには、文字列をクリップボードにコピー&ペーストして行います。

pyperclip.copy(‘日本語の文字列’)でクリップボードに文字列をコピーしてから、
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コースがおすすめです。

デイトラPythonコース

 

・ゼロから学んでいくことに不安がある。

・何を勉強すればちゃんと書けるようになるのか正直分からない。

そういう方におすすめの講座になっています。

 

10万円以下の価格で現役プログラマーによるメンターにいつでも質問できる講座を受けられます。

 

この講座を通してやることで、あなたもしっかりとした自動化、分析のコードを書けるようになり、業務や、生活に活かしていくことができます。

 

やっぱり一人でやっていると心配なのが、全然コードが分からない時に挫折することですよね。

でも、このコースであればメンターにいつでも質問できるので、挫折率は低いです。

ずーっと成長できないと不満だという方ほどデイトラPythonコースをおすすめします。

コメント

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