用户:
神秘蟑螂zl查看:10 回复:8 评论:10 创建时间:2022-07-14T10:44:49
今天去岛三玩起床,看到他们说连点器什么东西,就下载了个鼠大侠,嘿,这鼠大侠有些功能要付钱,这个连点功能还不如自己写,为了简便,我采用python做了个连点器,话不多说,开始! 第三方库: pynput 代码: importtkinter importtkinter.messagebox importpynput fromtimeimport* importthreading fromtkinterimport* gbs='v' classMouseClick: def__init__(self,button,time): self.mouse=pynput.mouse.Controller() self.running=False#确认是否在运行 self.time=time self.button=button #开启主监听线程 self.listener=pynput.keyboard.Listener(on_press=self.key_press) self.listener.start() defkey_press(self,key): try: ifkey.char==gbs: print(key.char) ifself.running==False: self.running=True #停止连点也需要调用这个函数 self.mouse_click() else: self.running=False self.mouse_click() except: pass defmouse_click(self): #这里还需要额外线程进行监听,为了能够更新self.running,防止陷入喵循环 key_listener=pynput.keyboard.Listener(on_press=self.key_press) key_listener.start() whileself.running: self.mouse.click(self.button) time.sleep(self.time) mousec=[] hh=True #新线程处理函数 defnew_thread_start(button,time): #例化类 iflen(mousec)>0: mousec.pop() mousec.append(MouseClick(button,time)) defkey_press(key): globalgbs,label1 try: gbs=key.char label1['text']='当前开关键为:'+gbs except: pass defon_closing(): globalgg,hh key_listener.stop()#停止键盘监听 gg.destroy()#关闭窗口 hh=True#设置可以打开新的改变开关键窗口 #选择连点开始关闭键 defgb(): globalgg,key_listener,hh,label1 ifhh:#检测是否可以打开改变开关键窗口 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按键处理函数 defstart(): try: #将文本框读到的字符串转化为浮点数 time=float(input.get()) ifmouse.get()==0: button=pynput.mouse.Button.left elifmouse.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='输入错误') defclose(): ifnot(hh):#关闭窗口时检测gg是否打开 gg.destroy()#关闭gg窗口 root.destroy()#关闭root窗口 #图形界面 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_start=Button(root,text='更新',font=("微软雅黑",12),fg="white",bg="gray",command=start) btn_start.place(relx=0.3,y=240,relwidth=0.4,height=30) root.protocol("WM_DELETE_WINDOW",close)#关闭root窗口时执行close函数 root.mainloop()
神秘蟑螂zl文章链接:https:// t.csdn.cn/Kzcsw 文件下载链接:https:// download.csdn.net/download/m0_66728742/86189477?spm=1001.2014.3001.5503 把链接的空格去掉就可以下载和复制代码了!
点赞1
评论