猫史档案馆


python连点器制作教程

用户:伴雪纷飞伴雪纷飞查看:14 回复:12 评论:14 创建时间:2021-08-12T17:41:41


整个程序的代码不会超过60行,及其简单

这其实是一个很棒(xei)的一个教程贴

众所周知,

连点器不管是在生活中还是在游戏里都扮演着很重要的角色(比如一些测手数的都能,变成数量都能变成--)

好了废话不多说

 

本次要用到的东西:

一台有python环境的电脑

一个可以操作电脑的人

 

本次要用到的库:

pynput(功能主要

time(让你的电脑不废掉

ps:pynput非python自带,请自行下载

 

好了开始吧

-------------------------不对称分割线------------------------------

首先导入库并创建一个名为Continuouschick(连点)类

并在里面创建一个名为Listen(监听)函数

try:
    import pynput
except ImportError:
    raise ImportError('请先安装pynput库!')
else:
    from pynput import mouse,keyboard 
    from pynput.keyboard import Listener,Key
    from time import sleep
    kb = mouse.Controller()
    abc='abcdefghigklmnopqrstuvwxyz'

class Continuouschick():
    def __init__(self):
         pass


if __name__ == '__main__':
    Cc = Continuouschick()

那这Controller是啥呢

pynput.mouse包含用于控制和监视鼠标的类。这个就是服务于鼠标点击的拉

在初始化(__init__

里面分别加上

        self.is_finish=True
        self.can_do=False
        self.conut=0
        self.Listenfor='空格键'
        self.waittime=0.01

第一个变量用来判断是否结束连点的(之后提及)

第二个变量用来判断是否暂停连点的(设计ui时有大帮助)

第三个则是已经连点多少个拉

第四个是用来判断什么键开启连点

 

信息解读

    def read(self,_read,w)->str:
        if self.can_do:
            return
            #print(w)
            #'abcdefghigklmnopqrstuvwxyz'
        if _read=='空格键':
            return Key.space==w
        elif _read in abc:
            return "'{}'".format(_read) == str(w)
        else:
            raise ValueError('没有判断分支')

将传进来的参数进行解析,化为适用于pynput的

这时初始化的Listenfor就可以解读了

 

连续点击

    def continuouschick->bool(self,key):
        print(key,self.is_finish)
        if self.read(self.Listenfor,key) and self.is_finish:
            self.is_finish=False
            print(self.is_finish)
            self.Listen()
        else:
            self.is_finish=True

key是传进来的参数,格式为pynput的,这时候判断解读是否一致呢

一致且还是没有开始连点的状态->设置为开始连点的(self.is_finish=False)

不一致或开始了连点->设置为开始连点的(self.is_finish=True)

准备好这串代码

ta就是连点的核心

            print('listen')
            while not self.is_finish:
                sleep(self.waittime)
                kb.click(mouse.Button.left, 1)
                self.conut+=1
                print('一共连点{}次'.format(self.conut))

重复执行到结束状态(while not self.is_finish:)

等待一下

让后进行点击(kb.click(mouse.Button.left, 1))

里面要两个参数[鼠标键][点击次数]

 

监听键盘

我们再用with对键盘进行监听

大致长这样的

记得把让你准备(复制*划掉)的代码粘贴进取

    def Listen(self) -> bool:
        #for i in iter(int(), 1):

        with keyboard.Listener(on_release=lambda key:self.continuouschick(key)) as listener:
            print('listen')
            while not self.is_finish:
                sleep(self.waittime)
                kb.click(mouse.Button.left, 1)
                self.conut+=1
                print('一共连点{}次'.format(self.conut))
            listener.join()

大致意思就是创建一个线程时刻监听,

如果键盘按下则调用continuouschick

 

 

好了辣么就结束了,大家是不是还有一点依依不舍呢(等着复制*划掉)

为了大家的方便*划掉

这是全部代码了

可以后续可加上ui

也可以对代码进行一个优化

最后献上center_image

哎呀,错了

try:
    import pynput
except ImportError:
    raise ImportError('请先安装pynput库!')
else:
    from pynput import mouse,keyboard 
    from pynput.keyboard import Listener,Key
    from time import sleep
    kb = mouse.Controller()
    abc='abcdefghigklmnopqrstuvwxyz'

class Continuouschick():
    def __init__(self):
        super().__init__()
        self.is_finish=True
        self.can_do=False
        self.conut=0
        self.Listenfor='空格键'
        self.waittime=0.01
        

    def Listen(self) -> bool:
        #for i in iter(int(), 1):

        with keyboard.Listener(on_release=lambda key:self.continuouschick(key)) as listener:
            print('listen')
            while not self.is_finish:
                sleep(self.waittime)
                kb.click(mouse.Button.left, 1)
                self.conut+=1
                print('一共连点{}次'.format(self.conut))
            listener.join()
        ...
    def read(self,_read,w)->str:
        if self.can_do:
            return
            #print(w)
            #'abcdefghigklmnopqrstuvwxyz'
        if _read=='空格键':
            return Key.space==w
        elif _read in abc:
            return "'{}'".format(_read) == str(w)
        else:
            raise ValueError('没有判断分支')


    def continuouschick->bool(self,key):
        print(key,self.is_finish)
        if self.read(self.Listenfor,key) and self.is_finish:
            self.is_finish=False
            print(self.is_finish)
            self.Listen()
        else:
            self.is_finish=True

if __name__ == '__main__':
    Cc = Continuouschick()
    Cc.can_do=True
    Cc.Listen()

ps:可能会有几处字打错的情况请及时反馈

ps:还有,别拿去搞非法的哈

ps:index out of range(咦,还有一个ps呢?)

学会了吗(复制了吗?*划掉)


回复

上一页1 页 / 共 1下一页
伴雪纷飞伴雪纷飞

自古沙发归作者

点赞4


评论


深沉LSZ深沉LSZ

25和47

点赞1


评论


伴雪纷飞伴雪纷飞

还有一点bug,这是修改版

try:
    import pynput
except ImportError:
    raise ImportError('请先安装pynput库!')
else:
    from pynput import mouse,keyboard 
    from pynput.keyboard import Listener,Key
    from time import sleep
    kb = mouse.Controller()
    abc='abcdefghigklmnopqrstuvwxyz'

class Continuouschick():
    def __init__(self):
        super().__init__()
        self.is_finish=True
        self.can_do=False
        self.conut=0
        self.Listenfor='空格键'
        self.waittime=0.01
        

    def Listen(self) -> bool:
        #for i in iter(int(), 1):

        with keyboard.Listener(on_release=lambda key:self.continuouschick(key)) as listener:
            print('listen')
            while not self.is_finish:
                sleep(self.waittime)
                kb.click(mouse.Button.left, 1)
                self.conut+=1
                print('一共连点{}次'.format(self.conut))
            listener.join()
        ...
    def read(self,_read,w):
        if self.can_do:
            #print(w)
            #'abcdefghigklmnopqrstuvwxyz'
            if _read=='空格键':
                return Key.space==w
            elif _read in abc:
                return "'{}'".format(_read) == str(w)
            else:
                raise ValueError('没有判断分支')


    def continuouschick(self,key):
        print(key,self.is_finish)
        if self.read(self.Listenfor,key) and self.is_finish:
            self.is_finish=False
            print(self.is_finish)
            self.Listen()
        else:
            self.is_finish=True
            


if __name__ == '__main__':
    Cc = Continuouschick()
    Cc.can_do=True
    Cc.Listen()

点赞2


评论


伴雪纷飞伴雪纷飞

d‪d‪

点赞0


评论


编码已破译编码已破译

哇,Python大佬

点赞0


评论


立白uzP4立白uzP4

我就问一句,你加那个try函数有什么意义呢?

点赞0


评论


立白uzP4立白uzP4

会报错?

点赞0


评论


立白uzP4立白uzP4

应该没错才对呀

点赞0


评论


AlcalaAlcala

nb

点赞1


评论


wwwloadwwwload

哎,错了错了,不是可以操控电脑的人,是一个人

点赞0


评论


Albert钟Albert钟

针不戳

点赞1


评论


Python-happyyyyPython-happyyyy

?Java的robot不好吗

点赞0


评论