Python pynput - マウスボタンを連打する(2)

前回に引き続きキーボードやマウス操作を行うライブラリ「pynput」をご紹介します。

前回は、単純に左クリックを連打するプログラムを作成しましたがこのままではとても使いにくいです。

今回は使い勝手をよくするために、ファンクションキー[F12]を押すと連打が有効になり、もう一度押すと連打が解除されるように実装します。

コーディング

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from pynput.mouse import Button, Controller
from pynput.keyboard import Key, Listener
import threading, time

def mouseclick(e):
while True:
if e.isSet(): # F12が押されて有効化したときに左クリック連打を行う
Controller().click(Button.left)
time.sleep(1) # 1秒待ち

e = threading.Event()
t = threading.Thread(target=mouseclick, args=(e,))
t.setDaemon(True)
t.start()

def on_press(key):
global e
if key == Key.f12: # F12が押されたら有効・無効を切り替える
if e.isSet():
e.clear()
else:
e.set()
if key == Key.esc: # ESCが押されたらプログラムを終了する
return False

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

Python pynput - マウスボタンを連打する(1)

キーボードやマウス操作を行うライブラリ「pynput」をご紹介します。

「キー入力」や「マウスを動かす」「クリックする」などのほか、その操作をした時の「イベント」を処理することもできます。

インストール

次のコマンドを実行し「pynput」をインストールします。

1
pip install pynput

コーディング

次は1秒おきに左クリックを行うソースになります。

1
2
3
4
5
6
7
8
9
10
11
from pynput.mouse import Button, Controller
import threading, time

def mouseclick(e):
while not e.isSet(): # e.set()が実行されるまでFalseを返す
Controller().click(Button.left) # 左ボタンをクリックする
time.sleep(1) # 1秒待ち
e = threading.Event()
threading.Thread(target=mouseclick, args=(e,)).start() # スレッドを開始する
input() # 入力待ち
e.set() # e.isSet()がTrueになる

プログラムを実行すると、連打が始まります。
コンソール上で「Enter」キーを押すと連打がとまります。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×