2023年1月25日水曜日

【PyAutoGUI】マウス操作

 Pythonによるマウスやキーボード操作を可能にしRPAに役立つライブラリPyAutoGUIでのマウス操作方法を解説する。

 PyAutoGUIを使うためには以下のようにインポートが必要。

import pyautogui


1. 画面サイズとマウス現在位置の取得

 画面サイズを取得するにはpyautogui.size()を用いる。引数は不要。

import pyautogui

pyautogui.size()

 実行結果

Size(width=1920, height=1080)


 2つの変数で受ければ画面の幅、高さの値をそれぞれ取得できる。

import pyautogui

x, y = pyautogui.size()
print(x, y)

 実行結果

1920 1080


 マウスの現在位置を取得するにはpyautogui.position()を用いる。引数は不要。

import pyautogui

pyautogui.position()

 実行結果

Point(x=606, y=190)


 2つの変数で受ければマウスのx座標、y座標をそれぞれ取得できる。

import pyautogui

x, y = pyautogui.position()
print(x, y)

 実行結果

600 189


2. moveToによる指定座標へのマウス移動

 マウスを任意の座標に動かすにはmoveTo()を用いる。引数には移動先の座標(x, y)を与える。次の例ではマウスカーソルがx100, y500に移動する。

import pyautogui

pyautogui.moveTo(100, 500)


 移動先の座標のみ指定した場合、実行直後に指定座標にカーソルが移動する。通常のマウス操作のようにカーソルを動かしたい場合、引数に移動時間(秒数)durationを指定する。書式は(x, y, duration)。次の例ではマウスカーソルがx100, y500に2秒かけて移動する。

import pyautogui

pyautogui.moveTo(100, 500, 2)


3. moveによる現在座標を基準にしたマウス移動

 現在位置を基準にしてマウスを動かすにはmove()を用いる。引数には移動するピクセル数(x, y)を与える。次の例ではマウスカーソルが現在位置から左に50, 下に200、1秒かけて移動する。

import pyautogui

pyautogui.move(-50, 200, 1)


4. dragTo、dragによるマウスドラッグ

 指定座標へマウスをドラッグするにはdragTo()を用いる。引数は(x, y, dulation, button)buttonはドラッグ中に押すマウスボタンの指定で値は'left', 'middle', 'right'のいずれか。次の例ではx1800, y700の座標に1秒かけて左ボタンを押しながらドラッグする。

import pyautogui

pyautogui.dragTo(1800, 700, 1, button='left')


 現在位置を基準にしてマウスをドラッグするにはdrag()を用いる。引数は(x, y, dulation, button)。次の例では現在位置から右に400, 上に100、2秒かけて右ボタンを押しながらドラッグする。

import pyautogui

pyautogui.drag(400, -100, 2, button='right')


5. clickによるマウスクリック

 マウスクリックはclick()を使う。次のように引数が無い場合は左クリックになる。

import pyautogui

pyautogui.click()


 クリックする座標を指定すると、指定座標に移動してからクリック動作を行う。x200, y100に移動してから左クリックする例。

import pyautogui

pyautogui.click(200, 100)


 引数buttonに'left', 'middle', 'right'いずれかを指定することで任意のボタンでクリックする。右クリックの例。

import pyautogui

pyautogui.click(button='right')


引数clicksによりクリック回数を指定できる。ダブルクリック(2回クリック)の例。

import pyautogui

pyautogui.click(clicks=2)


引数intervalにより複数回クリックする際の間隔を指定できる。0.25秒間隔をあけてダブルクリックする例。

import pyautogui

pyautogui.click(clicks=2, interval=0.25)


左ボタンによるダブルクリックはdoubleClick()でも実現可能。

import pyautogui

pyautogui.doubleClick()


マウスのクリック動作はボタンを押す動作と離す動作に分割できる。mouseDown()でボタンを押す動作、mouseUp()でボタンを離す動作を個別に実行できる。左ボタンのクリック動作の例。

import pyautogui

pyautogui.mouseDown()
pyautogui.mouseUp()


6. scrollによるマウスホイールのスクロール

 scroll()によりマウスホイールのスクロール動作が行える。引数にclicksとしてスクロール量に応じた「クリック数」を整数で指定する。ホイールを前に回す場合は正、ホイールを手前に回す場合は負の数にする。clicksを1000とした場合。1000ピクセル分画面が上にスクロールする(Windows10)

import pyautogui

pyautogui.scroll(1000, x=110, y=500)


 引数にx, yを指定すると、指定した座標(x, y)に移動してからスクロール動作する。座標(1200, 500)に移動してから手前に500クリック分スクロールする例。

import pyautogui

pyautogui.scroll(-500, x=1200, y=500)


7. リファレンス

PyAutoGUI > Docs > Mouse Control Functions

使用バージョン:Python 3.10.4 / PyAutoGUI 0.9.53

0 件のコメント:

コメントを投稿