吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3779|回复: 114
收起左侧

[Python 原创] Python 鼠标循环自动点击

    [复制链接]
Cool_Breeze 发表于 2024-1-20 11:01
本帖最后由 Cool_Breeze 于 2024-1-20 11:11 编辑

抱歉日常水贴,保持账号活跃度。
可执行文件:
[Python] 纯文本查看 复制代码
通过百度网盘分享的文件:autoClic…
链接:[url]https://pan.baidu.com/s/1sf1omVquv07ncJY0f6Sg9w?pwd=wc5p[/url] 
提取码:wc5p
复制这段内容打开「百度网盘APP 即可获取」


坐标可使用待位置信息的截图软件获取。
x,y坐标轴
interval:休息时间
格式:
[Python] 纯文本查看 复制代码
{            "x": 100,
            "y": 200,
            "interval": 1.0
        },


loop_max_count:最大循环次数
begin_posi_list:开始点击坐标
loop_posi_list:循环点击坐标
ended_posi_list:结束点击坐标

配置文件:
[Python] 纯文本查看 复制代码
{
    "loop_max_count": 5,
    "begin_posi_list": [],
    "loop_posi_list": [
        {
            "x": 100,
            "y": 200,
            "interval": 1.0
        },
        {
            "x": 1000,
            "y": 200,
            "interval": 2.5
        }
    ],
    "ended_posi_list": []
}
[Python] 纯文本查看 复制代码
import pyautogui
import json
import time
import os

from typing import Any, Callable, List


CONFIG_NAME = 'config.json'

class PositionData(object):

    def __init__(self, x:int, y:int, interval:float) -> None:
        self.x = x
        self.y = y
        self.interval = interval
        """点击坐标后等待时长"""

class ConfigInfo(object):

    def __init__(self, loop_max_count=0) -> None:
        """这些存在的值是为了生成config.json文件填充其格式而添加

        Args:
            loop_max_count (int, optional): 循环列表点击的最大次数. Defaults to 0.
        """
        self.loop_max_count = loop_max_count
        self.begin_posi_list:List[PositionData] = [PositionData(100,200,1.0),]
        self.loop_posi_list:List[PositionData] = [PositionData(100,200,1.0), PositionData(1000, 200, 1.5)]
        self.ended_posi_list:List[PositionData] = [PositionData(100,200,1.0),]

class JSONEncoder(json.JSONEncoder):

    def default(self, o: ConfigInfo) -> dict:
        
        d = {}
        for k,v in o.__dict__.items():
            if k.startswith('_'):
                continue
            d.setdefault(k, v)
        return d

class JSONDecoder(json.JSONDecoder):

    def decode(self, s: str, _w: Callable[..., Any] = ...) -> ConfigInfo:
        obj_data =  super().decode(s)
        obj = ConfigInfo()
        for k,v in obj_data.items():
            if isinstance(v, list):
                dt = []
                for pos in v:
                    dt.append(PositionData(**pos))
                setattr(obj, k, dt)
            else:
                setattr(obj, k, v)
        return obj

def read_local_config() -> ConfigInfo:

    with open(CONFIG_NAME) as fp:
        return json.load(fp, cls=JSONDecoder)

if __name__ =='__main__':

    # with open(CONFIG_NAME, 'w') as f:
    #     f.write(json.dumps(ConfigInfo(5), indent=4, cls=JSONEncoder))

    config = read_local_config()

    count = 0
    stop = False
    if len(config.begin_posi_list):
        for pos in config.begin_posi_list:
            count += 1
            xy = pos.x, pos.y
            print("begin : %d\tclick : %d, %d" % (count, *xy))
            pyautogui.click(xy)
            time.sleep(pos.interval)
    count = 0
    while True:
        if not len(config.loop_posi_list):
            break
        for pos in config.loop_posi_list:
            count += 1
            xy = pos.x, pos.y
            print("loop count : %d\tclick : %d, %d" % (count, *xy))
            pyautogui.click(*xy)
            if count >= config.loop_max_count:
                stop = True
                break
            time.sleep(pos.interval)
        if stop:
            break
    count = 0
    if len(config.ended_posi_list):
        for pos in config.ended_posi_list:
            count += 1
            xy = pos.x, pos.y
            print("begin : %d\tclick : %d, %d" % (count, *xy))
            pyautogui.click(xy)
            time.sleep(pos.interval)
    print("exit")
    os.system("pause")

免费评分

参与人数 23吾爱币 +29 热心值 +22 收起 理由
luckyblyd + 1 + 1 热心回复!
yycda + 1 + 1 谢谢@Thanks!
piu0 + 1 + 1 谢谢@Thanks!
ddonglliu + 2 + 1 用心讨论,共获提升!
odinchu + 1 + 1 我很赞同!
ltylsy + 1 + 1 谢谢@Thanks!
binge273 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
他说我说 + 1 + 1 用心讨论,共获提升!
蜗牛杰 + 1 + 1 用心讨论,共获提升!
sanck11 + 1 + 1 谢谢@Thanks!
dhwl9899 + 1 + 1 谢谢@Thanks!
kyletian + 1 + 1 我很赞同!
阿橙C + 1 谢谢@Thanks!
LQ789 + 1 + 1 热心回复!
laoxuemen888 + 1 + 1 用心讨论,共获提升!
喜歪歪 + 1 + 1 用心讨论,共获提升!
louchen94 + 1 + 1 我很赞同!
Signorino.M + 1 + 1 热心回复!
yyycccyyy + 1 + 1 我很赞同!
crary06 + 1 我很赞同!
aa20221101 + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
soughing + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bian96 发表于 2024-1-30 20:09

回帖奖励 +2 CB吾爱币

温馨提示:请注意回复框下方的提醒文字。

警告:本版块禁止灌水或回复与主题无关内容,违者重罚!
escapist9 发表于 2024-1-31 12:35

回帖奖励 +2 CB吾爱币

用代码确定点击位置的方法好像不太适用日常应用场景,我记得以前wx上有个叫跳一跳的游戏,那个应该可以在这个基础上加一个获取中心点位置来实现跳高分,但是日常用的话好像有点鸡肋了。(无意冒犯抱歉抱歉)
bachelor66 发表于 2024-1-20 15:03

回帖奖励 +2 CB吾爱币

单纯点击的话好像按键精灵之类的更方便                                 
ponlu 发表于 2024-1-20 11:07

回帖奖励 +2 CB吾爱币

用按键精灵会不会简单点?
lizy169 发表于 2024-1-20 11:07

回帖奖励 +2 CB吾爱币

感觉代码太复杂了
sai609 发表于 2024-1-20 11:17

回帖奖励 +2 CB吾爱币

微信小程序挂号,如何实现循环自动点击?求代码
大兵马元帅 发表于 2024-1-20 11:26

回帖奖励 +2 CB吾爱币

感觉有点水
wkdxz 发表于 2024-1-20 11:32

回帖奖励 +2 CB吾爱币

具体应用场景是什么?
qqycra 发表于 2024-1-20 11:44

回帖奖励 +2 CB吾爱币

python确实能做很多功能
94MJ 发表于 2024-1-20 11:52

回帖奖励 +2 CB吾爱币

有没有演示视频呀
明月清疯 发表于 2024-1-20 11:56

回帖奖励 +2 CB吾爱币

实测可行,感谢分享
衣征尘 发表于 2024-1-20 11:58

回帖奖励 +2 CB吾爱币

我也觉得按键精灵会简单点
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-29 15:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表