機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【python】【PyAutoGUI】#1 pythonでマウス操作を自動化する

PyAutoGUIを用いてマウスを自動で動かす 

f:id:stjun:20200507133713g:plain

 

※初心者向けにpythonの勉強法とその手順を記事にしました。

www.stjun.com

www.stjun.com

 

 

1. はじめに

PyAutoGUIをご存知ですか?

PyAutoGUIはpython用のモジュールで、PyAutoGUIを使用するとマウスやキーボードをpythonで操作することができるようになります。

つまり同じような作業を何度もやらなければいけない場合、PyAutoGUIで一度コードを書いてしまえば自動化できるということになります。

私は会社の評価システムをPyAutoGUIで自動化しています。

今回はPart1として、PyAutoGUIを用いてマウス移動の自動化を紹介したいと思います。

 

2. 冒頭GIF画像のコード

import pyautogui as pag
import time

# 各動作の間に1sのクールタイム
pag.PAUSE=1
# マウス自動操作前に10s待つ
time.sleep(10)
# マウスの自動操作
# moveRelは相対座標(x座標、y座標,速さ、挙動)
pag.moveRel(300,0,1.5)
pag.moveRel(0,300,1.5)
pag.moveRel(-200,0,1.5)
pag.moveRel(0,-100,1.5)

実行すると記事冒頭のGIF画像のようにマウスが上下左右に自動で動きます。

 

3. 説明

3.1 前準備

プログラミング環境はAnacondaを使用しています。またAnacondaにはPyAutoGUIが入ってないので、pipを用いてインストールしています。

インストール方法は以下になります。

※Anacondaはインストール済とします。

1. Windowsスタートメニュー(左下)から「Anaconda Prompt」をクリック

f:id:stjun:20200507122401p:plain

2. 出てきたコマンドプロンプト内に「pip install pyautogui」と打ちEnterキーを押す

f:id:stjun:20200507122933p:plain

3. インストールが終わるまで待って完了

 

3.2 マウスの動かし方

マウスの動かし方には、

①絶対座標で指定

②相対座標で指定

の2通りあります。

 

3.3 ①絶対座標での指定

まず絶対座標についてですが、絶対座標でマウス位置を指定すると、必ず毎回モニタの同じ位置にマウスが移動します。

どういうことかというと、私の使用しているモニタの解像度は1920×1080なため、左上の座標はx=0,y=0、右下の座標はx=1920、y=1080、右上の座標はx=1920,y=0、左下の座標はx=0,y=1080と座標が決められています。例えばx=960,y=540とした場合はモニタの中央を意味します。

このように絶対座標でマウス位置を指定するとマウスがどこに居ても、必ず同じ場所に移動してくれます。そのためUIが決まっているソフトを動かす場合などに便利な使い方になります。

 絶対座標でマウス位置を指定する場合は以下のように、pyautogui.moveToを使います。

pyautogui.moveTo(100,100,1)

ここでmovetoの引数は左から順に、x座標、y座標、動く速度、挙動(※上記コードではなし)の4つになります。

つまり上記コードでは、x=100,y=100の座標に1秒間かけて移動することになります。

挙動については後ほど説明します。

 

3.4 ②相対座標での指定

反対に相対座標で指定した場合、現在の位置から右にいくつ、下にいくつといった指定方法になります。

相対座標でマウス位置を指定する場合は以下のように、pyautogui.moveRelを使います。

pyautogui.moveRel(300,200,1.5)

ここでmoveRelの引数も同様に左から順に、x座標、y座標、動く速度、挙動(※上記コードではなし)の4つになります。

上記のコードでは、現在のマウス位置から、右に300、下に200の座標に1.5秒かけて移動することになります。

 

3.5 マウスの挙動を指定

PyAutoGUIではマウスの挙動をi以下5つ指定することができます。

  1. easeInQuad
  2. easeOutQuad
  3. easeInOutQuad
  4. easeInBounce
  5. easeInElastic

 

3.5 easeInQuad

f:id:stjun:20200507133847g:plain

3.6 easeOutQuad

f:id:stjun:20200507133943g:plain

3.7 easeInOutQuad

f:id:stjun:20200507134020g:plain
 

3.8 easeInBounce

f:id:stjun:20200507134049g:plain

3.9 easeInElastic

f:id:stjun:20200507134131g:plain



おすすめ書籍 

PyAutoGUIの使用方法が載っている書籍を紹介します。

この2つは非常に丁寧に書かれているのでお勧めです。

 「PythonGUI自動化しよう」については、Amazonの月額読み放題サービス「Kindle unlimited」に加入していれば読み放題です。

初回30日間は無料、退会も簡単なので試しに読んでみてもよさそうです。

 

4. 最後に

いかがだったでしょうか。

PyAutoGUIを使うと自動化ができますので便利です。