功能,通过截图工具获得需要点击位置的坐标,设置x/y坐标,不断点击,用esc退出
import pyautogui
import pynput
import threading
from queue import Queue
'''
控制鼠标点击,用esc退出点击,可用于网页抢购
'''
class Listen:
def __init__(self, q):
self.q = q
def on_press(self, key):
try:
print('alphanumeric key {0} pressed'.format(key.char))
except AttributeError:
print('special key {0} pressed'.format(key))
def on_release(self, key):
print('{0} released'.format(key))
if key == pynput.keyboard.Key.esc:
print('====enter 24')
self.q.put('enter')
def keyboard_listener(self):
while True:
with pynput.keyboard.Listener(
on_press=self.on_press,
on_release=self.on_release) as listener:
try:
r = self.q.get(timeout=0.1)
print(r)
if r:
self.q.put('enter')
break
except Exception as e:
print(e)
def mouse_click(q, x, y):
while True:
print('click=====')
pyautogui.click(x=x, y=y, clicks=1, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)
try:
r = q.get(timeout=0.1)
if r:
print('=====mouse_click:{}'.format(r))
break
except Exception as e:
print(e)
if __name__ == '__main__':
q = Queue(maxsize=1000)
x = 600 # x/y两个坐标
y = 800
t_key = threading.Thread(target=Listen(q).keyboard_listener)
t_mouse = threading.Thread(target=mouse_click, args=(q, x, y))
t_key.start()
t_mouse.start()
t_key.join()
t_mouse.join()