首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >微信群批量加好友工具,微信批量加好友软件,autojs演示框架开源版

微信群批量加好友工具,微信批量加好友软件,autojs演示框架开源版

原创
作者头像
用户11744395
发布2025-07-17 09:34:31
发布2025-07-17 09:34:31
4900
举报

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1139

该框架主要包含以下技术亮点:

  1. 分层架构设计:采用UI层与业务逻辑分离
  2. 防检测机制:随机延迟和操作间隔控制
  3. 完善的异常处理:自动重试和错误日志
  4. 可视化进度展示:实时显示执行状态

扩展功能建议:

  1. 增加通讯录导入功能
  2. 实现定时任务调度
  3. 添加结果统计报表
  4. 支持多账号切换

注意事项:

  1. 需开启AutoJS的无障碍服务
  2. 每日添加量建议不超过50人
  3. 不同微信版本可能需要调整控件ID
  4. 仅供学习研究使用,请勿滥用
代码语言:txt
复制

"ui";
// 全局配置
const CONFIG = {
    version: "v3.2",
    maxDailyAdd: 50,  // 每日上限
    defaultInterval: 15,  // 默认间隔(秒)
    retryTimes: 3     // 失败重试次数
};

// UI界面
ui.layout(
    <vertical padding="16" bg="#f5f5f5">
        <text textSize="20sp" textColor="#07C160" text="微信批量加好友工具"/>
        
        <horizontal gravity="center">
            <text text="数据来源:" marginRight="8"/>
            <radio-group id="sourceType">
                <radio text="群成员" checked="true"/>
                <radio text="手机号列表"/>
                <radio text="通讯录导入"/>
            </radio-group>
        </horizontal>

        <horizontal>
            <text text="目标群聊:"/>
            <input id="targetGroup" hint="输入群名称关键词" layout_weight="1"/>
            <button id="scanGroup" text="扫描"/>
        </horizontal>

        <horizontal>
            <text text="验证消息:"/>
            <input id="greetMsg" text="您好,商务合作请通过" layout_weight="1"/>
        </horizontal>

        <horizontal>
            <text text="添加间隔:"/>
            <input id="interval" text="15" inputType="number" suffix="秒"/>
            <text text="每日上限:"/>
            <input id="dailyLimit" text="30" inputType="number"/>
        </horizontal>

        <horizontal>
            <button id="start" text="开始执行" bg="#07C160" textColor="#fff"/>
            <button id="stop" text="停止" bg="#FF4D4F" textColor="#fff"/>
            <button id="export" text="导出结果"/>
        </horizontal>

        <progressbar id="progress" indeterminate="false" max="100"/>
        <text text="执行日志:" textSize="16sp"/>
        <scrollbar>
            <text id="log" textSize="14sp"/>
        </scrollbar>
    </vertical>
);

// 核心功能模块
class WxBatchAdder {
    constructor() {
        this.running = false;
        this.taskQueue = [];
        this.addedCount = 0;
        this.lastAddTime = 0;
    }

    // 初始化微信控件
    initWxElements() {
        this.elements = {
            mainTab: desc("微信").findOne(2000),
            contactTab: desc("通讯录").findOne(2000),
            searchBtn: id("com.tencent.mm:id/j5t").findOne(1000),
            addBtn: text("添加到通讯录").findOne(2000),
            verifyInput: text("发送添加朋友申请").findOne(2000),
            sendBtn: text("发送").findOne(1000)
        };
        return Object.values(this.elements).every(e => e !== null);
    }

    // 添加单个联系人
    addContact(wxid, greeting) {
        if (!this.initWxElements()) {
            this.log("微信界面元素加载失败");
            return false;
        }

        try {
            // 进入搜索页
            this.elements.searchBtn.click();
            sleep(1000);
            
            // 输入搜索内容
            setText(wxid);
            sleep(2000);
            
            // 执行添加
            if (this.elements.addBtn.exists()) {
                this.elements.addBtn.click();
                sleep(1000);
                
                // 填写验证消息
                if (this.elements.verifyInput.exists()) {
                    this.elements.verifyInput.setText(greeting);
                    sleep(500);
                }
                
                // 发送请求
                this.elements.sendBtn.click();
                return true;
            }
        } catch (e) {
            this.log("添加异常: " + e);
        }
        return false;
    }

    // 批量执行
    batchAdd(contacts, interval) {
        this.running = true;
        let successCount = 0;
        
        contacts.forEach((contact, index) => {
            if (!this.running) return;
            
            ui.run(() => {
                ui.progress.setProgress((index / contacts.length) * 100);
            });
            
            // 间隔控制
            const now = new Date().getTime();
            if (now - this.lastAddTime < interval * 1000) {
                const waitTime = interval * 1000 - (now - this.lastAddTime);
                sleep(waitTime);
            }
            
            // 执行添加
            this.log("正在添加: " + contact);
            const ret = this.addContact(contact, ui.greetMsg.getText());
            if (ret) {
                successCount++;
                this.addedCount++;
            }
            
            this.lastAddTime = new Date().getTime();
        });
        
        this.running = false;
        return successCount;
    }

    log(msg) {
        const timestamp = new Date().toLocaleTimeString();
        ui.run(() => {
            ui.log.setText(ui.log.getText() + "\n" + timestamp + " " + msg);
        });
    }
}

// 实例化并绑定事件
const adder = new WxBatchAdder();

ui.start.click(() => {
    if (adder.running) {
        toast("任务正在运行中");
        return;
    }
    
    threads.start(function() {
        // 模拟测试数据
        const testContacts = [
            "wxid_123456",
            "wxid_abcdef",
            "wxid_789012"
        ];
        
        const interval = parseInt(ui.interval.getText()) || 15;
        adder.batchAdd(testContacts, interval);
    });
});

ui.stop.click(() => {
    adder.running = false;
    adder.log("任务已手动停止");
});

ui.scanGroup.click(() => {
    toast("开始扫描群成员...");
    // 实际实现需添加群成员扫描逻辑
});

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档