PyautoguiでClickしてPCの画面操作を行う

当ページのリンクには広告が含まれています。
dr-harv.comスマホヘッダー画像

PyatutoguiではPCの画面操作をおこなうことができるPythonのモジュールです

Python環境でインストールをおこないます

目次

インストール

pipコマンドでインストールできます

$ pip install pyautogui

画面クリックをおこなう

以下のコマンドで画像ファイルの真ん中をクリックすることが出来ます

import pyautogui

# 画像ファイルのパスを指定
image_path = 'example.png'

# 画像の位置を画面上で検出する
location = pyautogui.locateOnScreen(image_path)

if location:
    # 画像の中心を計算する
    center = pyautogui.center(location)
    
    # 画像の中心にマウスを移動してクリック
    pyautogui.click(center)
else:
    print("画像が画面上に見つかりませんでした。")

クリックについては以下のコマンドが使用できます

import pyautogui

pyautogui.click(x, y,1, 0, 'right') #右クリック
pyautogui.click(x, y,1, 0, 'center') #真ん中クリック
pyautogui.click(x, y,2, 0.1,'left') #ダブルクリック
pyautogui.click(x, y,3, 0.1,'left') #トリプルクリック

pyautogui.click('button.png') #画像をクリック

PyautoguiのCheat seatはこちら

Mouse control functionはこちら

無限ループの回避

エラーでスクリプトコードが無限ループになってしまうとプログラムの停止が難しくなりフリーズなどの危険性があります。

安全のためにPyAutoGUIの pyautogui.FAILSAFE = True 設定を有効にしておくと、マウスを画面の四隅のいずれかに移動させることで緊急停止することができます。

マウスカーソルを画面の四隅のいずれかに迅速に移動させることで、スクリプトの実行を安全に停止させることができます。以下のコードは画像をクリックする操作を行いつつ、緊急停止機能を含めたものです:

import pyautogui

# 緊急停止のための設定。Trueに設定すると、マウスをスクリーンの四隅に移動させることでプログラムを停止させることができる
pyautogui.FAILSAFE = True

try:
    # 画像ファイルのパスを指定
    image_path = 'example.png'

    # 画像の位置を画面上で検出する
    location = pyautogui.locateOnScreen(image_path)

    if location:
        # 画像の中心を計算する
        center = pyautogui.center(location)
        
        # 画像の中心にマウスを移動してクリック
        pyautogui.click(center)
    else:
        print("画像が画面上に見つかりませんでした。")
except pyautogui.FailSafeException:
    print("緊急停止が行われました。")

このコードにおいて、pyautogui.FAILSAFE = True はマウスを画面の四隅に迅速に移動させることでスクリプトを強制終了できるように設定しています。これにより、意図しない動作や無限ループからの脱出が可能になります。

関連記事

あわせて読みたい
KindleのスクショをPyautoguiで自動化する方法 Kindleのスクショは個人利用でかつ非営利の場合問題ありません この記事では、Pyautoguiを使ってKindleのスクリーンショットを自動化する方法を紹介します。これで手間...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

こんにちは、Dr. Harv です。専門医としてのキャリアを積む一方で、資産運用、副業、ポイ活にも取り組んでいます。
このブログ「dr-harv.com」では、日々の日常、投資の知見、趣味など幅広いトピックを扱っています。より良い未来につながることをコンセプトにしています。読者の皆様にとって何か役立つ情報を提供できれば幸甚です。

コメント

コメントする

目次