1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SuiSuiAdvent Calendar 2023

Day 7

作業自動化に使えるPyAutoGUI紹介 【フェイルセーフ・カーソル位置取得】

Last updated at Posted at 2023-11-28

はじめに

前回に引き続き,自作RPAツールとして利用できる「PyAutoGUI」について紹介していきます.

「マウス操作」「キーボード操作」のコマンドはこちら
作業自動化に使えるPyAutoGUI紹介①

「メッセージボックス機能」「スクリーンショット機能」「Locate機能」のコマンドはこちら
作業自動化に使えるPyAutoGUI紹介②

PyAutoGUIとは

Pythonスクリプトでマウスとキーボードを制御して,「マウス操作の自動化」や「キーボード入力の自動化」を実現します.

動作環境

  • Python 3.12.0
  • PyAutoGUI 0.9.54

PyAutoGUIはpipを使用してインストールできます.

pip install pyautogui

コマンド紹介

  • position()
    マウスカーソルの現在のxy座標を返す.
import ppyautogui as pag

pag.position()

  • size()
    現在の画面解像度を返す.
import ppyautogui as pag

pag.size()

  • onScreen(x, y)
    (x, y)が画面内にあればTrue,無ければFalseを返す.
import ppyautogui as pag

pag.onScreen(x, y)

  • フェイルセーフ
    PyAutoGUIが呼び出されるたびに2.5秒の一時停止を設定します.
import pyautogui as pag

pag.PAUSE = 2.5

フェイルセーフモードがTrueの場合,マウスを左上に動かすとpyautogui.FailSafeExceptionが発生し,プログラムを中断させることができます.

import pyautogui as pag

pag.FAILSAFE = True

座標の位置を調べるためにマウスカーソルの位置を都度実行して調べることは大変だと思います.以下のPython3スクリプトは常にマウスカーソルの位置を出力します.

import pyautogui, sys
print('Press Ctrl-C to quit.')
try:
    while True:
        x, y = pyautogui.position()
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(positionStr, end='')
        print('\b' * len(positionStr), end='', flush=True)
except KeyboardInterrupt:
    print('\n')
Press Ctrl-C to quit.
X: 1384 Y:  204

マウスカーソルを動かすと,上記のX,Y座標の数値がリアルタイムで変化します.
終了する場合は「Ctrl + C」を押してください.

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?