Python でオート クリッカーを作成する

Manav Narula 2023年6月21日
  1. pyautogui モジュールを使用して Python でオート クリッカーを作成する
  2. win32api を使用して Python でオート クリッカーを作成する
  3. pynput モジュールを使用して Python でオート クリッカーを作成する
  4. まとめ
Python でオート クリッカーを作成する

名前が示すように、Python のオート クリッカーは、ユーザーの要件に従ってマウスを繰り返しクリックする単純な Python アプリケーションです。 速度、周波数、位置などのさまざまなパラメーターは、ユーザーに応じて変更できます。

Python には、キーボード、マウスなどのデバイスを制御するために使用できるさまざまなモジュールがあります。したがって、これらのモジュールを使用して Python でオート クリッカーを簡単に作成できます。

このチュートリアルでは、Python でオート クリッカーを作成するさまざまな方法を紹介します。

pyautogui モジュールを使用して Python でオート クリッカーを作成する

pyautogui モジュールは、デバイスのマウスとキーボードを制御するスクリプトを作成できます。

pyautogui.click() 関数を使用してマウスをクリックできます。 pyautogui.moveTo() 関数を使用してマウスを必要な位置に事前に移動し、カーソルの座標を指定できます。

これらの関数で自動クリッカーを作成するには、マウスを動かして for ループを実行し、すべての繰り返しの pyautogui.click() 関数を実行します。 また、これが見えるようにするために、クリックするたびに少し遅れます。

遅延には time モジュールの sleep() 関数を使用します。

以下のコードで自動クリッカーのロジックを実装します。

import pyautogui
import time

pyautogui.moveTo(600, 800)
for i in range(20):
    time.sleep(0.1)
    pyautogui.click()

上記の例では、カーソルを座標 (600,800) に移動し、click() 関数を使用してマウスを 20 回クリックします。

win32api を使用して Python でオート クリッカーを作成する

win32api は、Windows COM オブジェクトの制御と自動化に使用されます。 win32con モジュールからこれらのオブジェクトを使用して、マウス クリックを模倣することができます。

このために、win32api.mouse_event 関数を 2 回使用します。1 回目は win32con.MOUSEEVENTF_LEFTDOWN 用で、もう 1 回は win32con.MOUSEEVENTF_LEFTDOWN 用で、マウス クリックを模倣します。

win23api.SetCursorPos() 関数を使用して、カーソルの位置を必要な座標に設定します。 次に、前の方法で行ったのと同様のアプローチを使用して、Python で自動クリッカーを作成します。

以下のコードを参照してください。

import win32api
import win32con
import time

win32api.SetCursorPos((600, 800))
for i in range(20):
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 600, 800, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 600, 800, 0, 0)
    time.sleep(0.1)

pynput モジュールを使用して Python でオート クリッカーを作成する

また、Python スクリプトでマウスとキーボードのアクションを自動化するための pynput もあります。 このメソッドは、オート クリッカーを作成するために必要な機能を備えたクラスを作成するため、前の 2つとは異なります。

特定のキーが押されたときに自動クリッカーとして機能するクラスを作成します。 クリックを止めるために別のキーが割り当てられます。

pynput.mousepynput.keyboard モジュールの両方をインポートする必要があります。

作成されたクラスは threading.Thread クラスに拡張されるため、さまざまな機能でスレッドを制御できます。

クラスの __init__ メソッドでは、前に行ったように各クリックの間にわずかな遅延を指定し、Button.Left オブジェクトを使用してマウスの左ボタンをクリックすることを示します。

スレッドは、クリックを停止するキーが押されるまで実行され続けます。 threading.Thread クラスの start() メソッドを使用して、クリックを開始します。

running() メソッドでは、Controller クラス オブジェクトも使用します。

スレッドを開始および停止するには、関数を作成します。 Listener() 関数は、on_press 引数を使用してキーを押している間、定義された関数を実行します。

このロジックは、以下のコードに実装されています。

import time
import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode

start_end = KeyCode(char="a")
exit_key = KeyCode(char="z")


class auto_clicker_class(threading.Thread):
    def __init__(self):
        super(auto_clicker_class, self).__init__()
        self.delay = 0.1
        self.button = Button.left
        self.running = False
        self.program_run = True

    def begin_clicking(self):
        self.running = True

    def clicking_stop(self):
        self.running = False

    def exit(self):
        self.clicking_stop()
        self.program_run = False

    def run(self):
        while self.program_run:
            while self.running:
                mouse_ob.click(self.button)
                time.sleep(self.delay)
            time.sleep(0.1)


mouse_ob = Controller()
t = auto_clicker_class()
t.start()


def fun(k):
    if k == start_end:
        if t.running:
            t.clicking_stop()
        else:
            t.begin_clicking()
    elif k == exit_key:
        t.exit()
        listener.stop()


with Listener(on_press=fun) as listener:
    listener.join()

まとめ

このチュートリアルでは、自動クリッカーについて説明しました。 最初の 2つの方法は、マウス クリックを模倣するために for ループを使用して数回繰り返される関数を実行するため、比較的単純です。

最後のメソッドは、キーボードで押されたキーに基づいてクリックを開始および停止できる適切な自動クリッカー スクリプトを Python で作成します。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn