QQ即时通讯消息群发例子,QQ机器人开发学习资料

本文介绍了一个基于C#的QQ机器人实现案例,通过代码展示了如何自动登录、获取好友及群组列表,并向好友和群组发送消息。此外,还介绍了如何随机生成QQ号并发送好友申请。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

QQ即时通讯消息群发例子,QQ机器人开发学习资料

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OQQ.UI;
using System.Windows.Forms;
using OverredQQ.QQCore;
using KaosCodeGen;

namespace SimpleQQ.QQList
{
    public class QQNode : TreeNode
    {
        private double _Interval = 10*1000;

        public double Interval
        {
            get { return _Interval; }
            set { _Interval = value; }
        }

        private System.Timers.Timer _Timer = null;

        public System.Timers.Timer Timer
        {
            get { return _Timer; }
            set { _Timer = value; }
        }
        private string _Password = string.Empty;

        public string Password
        {
            get { return _Password; }
            set { _Password = value; }
        }
        private string _UserName = string.Empty;

        public string UserName
        {
            get { return _UserName; }
            set { _UserName = value; }
        }

        private string _msg = "http://haha.kaslive.com 分享一个笑话^_^";
        public string msg
        {
            get { return _msg; }
            set { _msg = value; }
        }

        public QQNode(string qq, string password)
        {
            this.UserName = qq;
            this.Password = password;
            this.Text = qq;
            _Timer = new System.Timers.Timer(Interval);
            _Timer.Enabled = false;
            _Timer.Elapsed += new System.Timers.ElapsedEventHandler(_Timer_Elapsed);
        }

       
        private GuiAdapter guiAdapter;
        private  OverredQQ.QQCore.NetworkLayerAdapt networkLayerAdapter;
        public void Login(object sender)
        {
            guiAdapter = new GuiAdapter(uint.Parse(UserName), OQQ.UI.Util.QQPassword(Password), true, null);
            guiAdapter.Onlogined += new OnQQReady(guiAdapter_Onlogined);
            guiAdapter.User.Udp = true;
            networkLayerAdapter = new OverredQQ.QQCore.NetworkLayerAdapt(
                guiAdapter.User,
                guiAdapter);
            //此处服务器可选
            networkLayerAdapter.Connect(@"sz.tencent.com", 8000);
        }
        public void SendJoin()
        {
            //
        }
        //public void OnAddNode(TreeNode node,TreeNode no)
        //{
        //    this.Nodes.Add(node);
        //}
        public AddNodeDelegate addnode = null;
        void guiAdapter_Onlogined(OverredQQ.QQCore.Misc.QQCache cache)
        {
            //addnode = new AddNodeDelegate(OnAddNode);
            foreach (OverredQQ.QQCore.Bean.Uin uin in cache.AllFriends.Uins)
            {
                FriendNode friend = new FriendNode(uin.Id, cache.AllFriends[uin].Nick);
                friend.Adapter = this.guiAdapter;
                friend.msg = msg;
                this.Nodes.Add(friend);
            }
            foreach (OverredQQ.QQCore.Bean.ClusterId clusterId in cache.ClusterIds)
            {
                //GroupNode
                GroupNode group = new GroupNode(clusterId.Id,cache.Clusters[clusterId].Name);
                group.Adapter = this.guiAdapter;
                group.msg = msg;
                //this.Nodes.Add(group);
                this.Nodes.Add(group);
                //this.SendClusterIM(clusterId, new Font(FontFamily.Families[0], 12), Color.Red, this.msg);
                //Thread.Sleep(800);
                //this.textBoxMsg.Text += "group:" + Convert.ToString(clusterId);
            }
        }
        public Random rr = new Random();
        public bool OpenSendIM = true;
        public bool OpenSendGIM = true;
        public bool OpenSendADDM = true;
        public void OnAutoStartSendMsg(object sender)
        {
            this.Timer.Enabled = true;
            this.Timer.Start();
            this.Text = this.UserName + "(正在运行)";
        }
        void _Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (guiAdapter == null)
            {
                Login(null);
            }
            if (guiAdapter.IsReady)
            {
                AutoMSG();
            }
        }
        public int OpenSendADDMCount = 0;
        public int ii = 0;
        public bool MV = false;
        public bool AV = false;
        public bool Done
        {
            get
            {
                return MV && AV;
            }
        }
        public void AutoMSG()
        {
            if (guiAdapter == null)
            {
                Login(null);
            }
            if (!guiAdapter.IsReady)
            {
                AppContext.Write("正在登陆....");
                return;
            }
            if (MV && AV)
            {
                this.Timer.Enabled = false;
                this.Timer.Stop();
                guiAdapter.Dispose();//注销QQ
                //TreeView p = this.TreeView;
                //this.Remove();
                //if (p.Nodes.Count > 0)
                //{
                //    QQNode node = this.TreeView.Nodes[0] as QQNode;
                //    node.OnAutoStartSendMsg(null);
                //}
            }
            //发送消息例子
            if (ii < this.Nodes.Count)
            {

                FriendNode node = this.Nodes[ii] as FriendNode;
                if (OpenSendIM && node != null) node.SendMsg(null);
                GroupNode gnode = this.Nodes[ii] as GroupNode;
                if (OpenSendGIM && gnode != null) gnode.SendMsg(null);
                ii++;
            }
            else
            {
                MV = true;
            }
            //邀请好友实例
            if (OpenSendADDM)
            {
                uint fqq = 0;
                while (fqq==0)
                {
                    int[] n = new int[6];
                    for (int i = 0; i < 6; i++)
                    {
                        n[i] = rr.Next(0, 99);
                    }
                    int cn = rr.Next(4, 6);

                    string qq = "";
                    for (int c = 0; c < cn; c++)
                    {
                        qq += n[c].ToString();
                    }
                    uint.TryParse(qq, out fqq);
                }
                int addme = rr.Next(10);
                //if (addme <= 2)
                //{
                //    guiAdapter.Adapter.SendAddFriendAuthPacket(51267195, FriendAuthRequest.Request, "我");
                //    AppContext.AMsg(string.Format("正在邀请:{0}为好友~^_^", fqq));
                //}
                //else
               
                {
                    guiAdapter.Adapter.SendAddFriendAuthPacket(fqq, FriendAuthRequest.Request, "http://haha.kaslive.com~一个笑话");
                    AppContext.AMsg(string.Format("正在邀请:{0}为好友~^_^", fqq));
                    OpenSendADDMCount++;
                    if (OpenSendADDMCount > 10)
                    {
                        OpenSendADDM = false;//邀请10个,超过就停止
                        AV = true;
                    }
                }
            }
        }
    }
    public delegate void AddNodeDelegate(TreeNode node);
}
 

实例下载

http://www.webkaos.com/samples/GroupMsgQQ.rar

.支持联系人状态(在线、离开、离线、忙碌、电话、会议…) .支持会话 .支持邀请多人会话 .支持表情图标 .支持字体与颜色 .支持截图发送 .支持点对点文件发送(Internet上平均传输文件为60KB/秒) .支持点对点文件断点续传 .支持语音交流 .支持视频交流 .查找好友 .显示商务好友信息 .支持消息广播 .留言消息提醒,对方不在线情况下可以留言,对方上线时得到留言提醒 .自定义群组 .自定义个人档案信息 .支持多人语音视频会议 .支持服务器Linux\Win2000\2003\2008 历史信息管理 通讯记录,查看历史聊天记录和文件发送接收记录 短信中心 1)一对一手机短信发送(中国移动、中国联通手机) 2)手机短信群发(中国移动、中国联通手机) Web客户端 内嵌Web网页浏览 语言版本 1)支持简体中文操作界面,包括客户端和服务端 2)支持英文操作界面,包括客户端和服务端 应用领域: 1. 高稳定性,高负载大用户量在线即时通信环境。 2. 面向高端商务,商贸,音乐娱乐各行业门户网站。 3. P2P 互动游戏数据交换. 4. 已有会员整合,"一站式" 服务应用领域。 5. 远程教学,医疗咨询,企业文件传输与管理,视频监控,网络电话等应用。 6. 和企业已有软件项目结合(ERP\CRM\SCM) 已经使用的企业: 上海XXX多媒体技术有限公司、上海XX传媒广告有限、上海XXX网络科技有限公司、青岛XXX软件科技有限公司、外X网、上海XXX服饰有限公司、 广州X打折网 、广州X下载网、北京X房产网、北京X龙旅游信息技术有限公司、北京X网络有限公司... 通讯协议: 1)底层通讯基于TCP/IP协议。 2)文件传输基于UDP协议。Internet中传输文件速度与QQ相当,内网传输文件最快,比QQ快点。 3)客户端之间消息交换基于P2P技术(点对点) 4)应用网络地址转换(NAT)技术,局域网和Internet之间自由通讯. 5)穿透防火墙技术. [找出目标进程] [找出SOCKET句柄] [用DuplicateHandle()函数将其SOCKET转换为能被自己使用] [用转换后的SOCKET进行数据传输] 6)支持邮件接受和发送协议(PoP3/STMP)提供邮件接口,可以在系统内集成邮件系统 开发环境 1)纯VC++、c、Delphi、C#编写 2)支持SQL Server 2000/2005/2008、Oracle9i/10i/MySql数据库 3)服务器系统支持Linux\BSD\Unix\Windows2000\2003\2008 服务器并发说明: 服务端主要用于用户基本信息、在线状态、组织结构的信息保存。 不参与客户之间的信息交换(类似BT),服务器可以为分布式集群,如果数据库为SQL SERVER 2000以上版本可以使用故障转移(负载均衡)大大增强服务端的并发和负载,服务端用户登录数并发为1秒300。 服务器负载说明: 注册用户数量设计上是没有限制的,单服务器情况下允许同时在线用户100000以上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值