自用python连点器

彩笔写的丐版python连点器,用线程替代while实现运行过程中随时终止。

但是有一个良性bug没有解决:线程没法单独终止,而是直接终止了所有线程。

源代码

import pyautogui
import time
from pynput.keyboard import  Key, Listener
import threading
click = int(input("请输入点击次数:"))
m = float(input("请输入点击间隔(秒):"))
print("1.鼠标放在合适位置,按j记录坐标")
print("2.按k运行连点器")
print("3.按t可以结束程序")
x = 0
y = 0
threads=[]
positions=[]
def click_it(x,y,c,m):

    for i in range(c):
        pyautogui.click(x, y)
        time.sleep(m)
def on_press(key):
    global x, y, user_input
    if hasattr(key, 'char'):
        if key.char == 'j':#按j检测位置
            x, y = pyautogui.position()
            positions.append((x,y))#元组形式存入列表
            print(f"x:{x} y:{y}")
        elif key.char == 'k':#按k启动一个连点线程
            global click, m
            t1=threading.Thread(target=click_it,args=(*positions[-1],click,m))#*是解包的意思
            threads.append(t1)
            t1.start()
            #先j再k,多来几次可以多线程连点
        elif key.char == 't':#按t终止程序
            listener.stop()
# 创建监听器对象并开始监听按键
listener = Listener(on_press=on_press)
listener.start()
# 等待用户输入t使监听器停止
while listener.is_alive():
    time.sleep(1)
# 关闭监听器和用户输入线程
listener.stop()
print("程序结束")

pyinstaller打包方法

1. pip install pyinstaller

2. pip show pyautogui,如果没有模块就pip install pyautogui

3. pip show pynput,如果没有模块就pip install pynput

4. pyinstaller注意不要有-w

 5. 到/dist文件下找到main.exe运行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值