Windows + Python で、マウスカーソルの位置で定期的にクリックさせる

Yossy
2024-07-12
2024-07-12

あるファイル編集ソフトで、複数のファイルを連続で処理しようとしたところ、このソフト、ファイルの処理が1個完了するたびに、「次のファイルを処理していいですか? [はい] [いいえ]」と聞いてくる仕様だったもんで、ファイル数が多いと、ちょっと面倒くさい状態になります。

なので、だいたい 1 ファイルあたり数秒で処理が終わるのと、[はい] ボタンの場所が、同じ場所に出てくるんで、10 秒ごとくらいに [はい] 押せるようになったら、放置できるのに・・・と思い Python で自動化してみました。

(1) 仕様を決める

・キーボードの[F10] ボタンを押したら、マウスカーソル位置で 10 秒ごとにクリックする
・マウスを動かしたら解除

(2) 環境に合わせて、pip install (keyboard と pyautogui を利用します)

(3) コードを書いて実行 (python 3.10.0 で確認)

import keyboard
import pyautogui

import time

def autoClick():
    a,b = pyautogui.position()
    while True:
        try:
            pyautogui.leftClick()
            x,y = pyautogui.position()
            time.sleep(10) # 10秒待機
        except:
            pass

        if not a == x and not b == y: break

# automatic Click Start
keyboard.add_hotkey("F10", autoClick)
keyboard.wait()

このスクリプトを実行すると仕様通り動作しますので、マウスカーソルを希望位置に移動して、キーボードからF10を押すと自動クリックが始まります。不要になったら、スクリプトを終了させてください。