python连点器

  这天,看到小伙伴在用连点,于是,就下载了鼠大侠。不过,鼠大侠这外观太不干净了。。。而且下在C盘,这怎么行?索性,删掉鼠大侠,自己做连点。。。

不过要好看的界面,首先想到python。。。于是,我就试着python做连点。

话不多说,奉上代码:

import tkinter
import tkinter.messagebox
import pynput
import time
import threading
from tkinter import *
gbs = 'v'
class Mouseclick:
    def __init__(self, button, time):
        self.mouse = pynput.mouse.Controller()
        self.running = False  # 确认是否在运行
        self.time = time
        self.close = False
        self.button = button
        # 开启主监听线程
        self.listener = pynput.keyboard.Listener(on_press=self.key_press)
        self.listener.start()

    def key_press(self, key):
        try:
            if key.char == gbs:
                if self.running == False:
                    self.running = True
                    # 停止连点也需要调用这个函数
                    self.mouse_click()
                else:
                    self.running = False
                    self.mouse_click()
        except:
            pass
    def mouse_click(self):
        # 这里还需要额外线程进行监听,为了能够更新self.running,防止陷入死循环
        key_listener = pynput.keyboard.Listener(on_press=self.key_press)
        key_listener.start()
        while self.running and not(self.close):
            self.mouse.click(self.button)
            time.sleep(float(self.time))
        key_listener.stop()
    def pop(self):
        self.close=True
        self.listener.stop()
mousec = None
hh=True
# 新线程处理函数
def new_thread_start(button, time):
    global mousec
    # 例化类
    if mousec != None:
        mousec.pop()
        del mousec
    mousec = Mouseclick(button,time)
def key_press(key):
    global gbs,label1
    try:
        gbs=key.char
        label1['text'] = '当前开关键为:' + gbs
    except:
        pass
def on_closing():
    global gg,hh
    key_listener.stop() #停止键盘监听
    gg.destroy() #关闭窗口
    hh=True #设置可以打开新的改变开关键窗口
#选择连点开始关闭键
def gb():
    global gg,key_listener,hh,label1
    if hh:#检测是否可以打开改变开关键窗口
        hh=False#设置不可以新的改变开关键窗口
        gg = tkinter.Tk()  # 新的tk界面
        gg.title('改变连点开关键(为键盘)')
        gg.geometry('300x200')
        gg.resizable(0, 0)
        label1 = tkinter.Button(gg,text='当前开关键为:' + gbs, font=("微软雅黑", 11), fg="gray")
        label1.place(relx=0.27,rely=0.3)
        key_listener = pynput.keyboard.Listener(on_press=key_press)
        key_listener.start()
        gg.protocol("WM_DELETE_WINDOW", on_closing) #关闭窗口时执行on_closing函数
        gg.mainloop()
# START按键处理函数
def start():
    try:
        # 将文本框读到的字符串转化为浮点数
        time = float(input.get())
        if mouse.get() == 0:
            button = pynput.mouse.Button.left
        elif mouse.get() == 1:
            button = pynput.mouse.Button.right
        # 开启新线程,避免GUI卡死
        t = threading.Thread(target=new_thread_start, args=(button, time))
        # 开启守护线程,这样在GUI意外关闭时线程能正常退出
        t.setDaemon(True)
        t.start()
        # 不能使用 t.join(),否则也会卡死
    except:
        tkinter.messagebox.showerror(title='报错',message='输入错误')
def close():
    if not(hh): #关闭窗口时检测gg是否打开
        gg.destroy() #关闭gg窗口
    root.destroy() #关闭root窗口
def stop():
    global mousec
    if mousec != None:
        mousec.pop()
        del mousec
        mousec=None
    tkinter.messagebox.showinfo('提示','成功结束')
#图形界面
root = Tk()
root.title('连点器')
root.geometry('600x290')

mouse = IntVar()
lab1 = Label(root, text='点击类型', font=("微软雅黑", 11), fg="gray")
lab1.place(relx=0.05, y=10, relwidth=0.4, height=30)
r1 = Radiobutton(root, text='鼠标左键', font=("微软雅黑", 10), value=0, variable=mouse)
r1.place(relx=0.05, y=40, relwidth=0.17, height=30)
r2 = Radiobutton(root, text='鼠标右键', font=("微软雅黑", 10), value=1, variable=mouse)
r2.place(relx=0.2, y=40, relwidth=0.3, height=30)

lab2 = Label(root, text='点击间隔时间', font=("微软雅黑", 11), fg="gray")
lab2.place(relx=0.55, y=10, relwidth=0.4, height=30)
input = Entry(root, font=("微软雅黑", 10))
input.place(relx=0.55, y=40, relwidth=0.4, height=30)


btn_start = Button(root, text='改变开关连点键', font=("微软雅黑", 12), fg="white", bg="gray", command=gb)
btn_start.place(relx=0.3, y=170, relwidth=0.4, height=30)
btn_start1 = Button(root, text='更新', font=("微软雅黑", 12), fg="white", bg="gray", command=start)
btn_start1.place(relx=0.3, y=240, relwidth=0.4, height=30)
btn_start2 = Button(root, text='结束', font=("微软雅黑", 12), fg="white", bg="gray", command=stop)
btn_start2.place(relx=0.3, y=100, relwidth=0.4, height=30)
root.protocol("WM_DELETE_WINDOW", close)#关闭root窗口时执行close函数
root.mainloop()

好了,这里就是代码,复制的复制, 研究的研究,效果:

 

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Python是一种高级编程语言,简单易学,被广泛应用于数据分析、人工智能、Web开发等领域。Python的发展历史可以追溯到上个世纪90年代,由Guido van Rossum创造并不断改进。 Python的特点之一是语法简洁清晰,具有高度的可读性。相对于其他编程语言,Python代码更加简洁,不需要过多的语法规则。Python中使用缩进来表示代码块,而不是使用大括号,这使得代码结构更加清晰。 另一个重要的特点是Python具有丰富的库和模块,使得开发变得更加高效。Python拥有庞大的第三方库,如NumPy、Pandas、Matplotlib等,它们提供了功能强大的数据分析和数据可视化工具。此外,Python还拥有Django、Flask等优秀的Web框架,可以用于开发Web应用。 Python还支持面向对象编程,这种编程方式可以更好地组织和管理代码。通过封装、继承和多态等特性,可以让程序结构更加清晰,提高代码的可维护性和复用性。 同时,Python还具有跨平台的特性,可以在Windows、MacOS和Linux等操作系统上运行。这使得Python成为一个便携且灵活的开发工具。 除此之外,Python还拥有活跃的社区,开发者可以通过社区分享和获取知识,获得帮助和支持。 总的来说,Python是一门简单易学、功能强大、灵活且适用于各种领域的编程语言。无论是初学者还是有经验的开发者,都可以从Python中受益,并利用其开发出高效、可靠的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值