安卓协议QQ源码包含模块源码.rar[点击下载](67 K) 下载次数:51 累计下载获得 DB 99 刀.版本 2
.支持库 EThread
.支持库 iext
.支持库 spec
.程序集 窗口程序集1
.程序集变量 Aqq, AndroidQQ:
2013.子程序 _按钮1_被单击
Aqq.QQ_登陆 (编辑框1.内容, 编辑框2.内容, 编辑框3.内容)
.如果真 (Aqq.QQ_取错误文本 () = “需要验证”)
编辑框_消息接收.加入文本 (“请输入验证码” + #换行符)
图片框1.图片 = Aqq.QQ_取验证码 ()
.如果真结束
.如果 (Aqq.QQ_取错误文本 () = “密码正确”)
编辑框_消息接收.加入文本 (编辑框1.内容 + “登录成功” + #换行符)
启动线程 (&接收消息_回调, , )
启动线程 (&心跳, , )
.否则
编辑框_消息接收.加入文本 (编辑框1.内容 + “登录失败” + #换行符)
.如果结束
.子程序 心跳
.计次循环首 (99999999999, )
延时 (取随机数 (20000, 30000))
Aqq.QQ_心跳包 ()
.计次循环尾 ()
.子程序 _按钮2_被单击
Aqq.QQ_加群 (编辑框4.内容, 编辑框5.内容)
.子程序 _按钮4_被单击
Aqq.QQ_取群列表 ()
.子程序 接收消息_回调
.局部变量 unFriendpack, UniPack
.局部变量 PacketInfo, RequestPacket
.局部变量 VecFun, bufferData, , "0"
.局部变量 FriendResp, FriendListResp
.局部变量 FriendInfo, FriendInfo, , "0"
.局部变量 GList, GroupInfo, , "0"
.局部变量 stTroopInfoV2, stTroopInfoV2, , "0"
.局部变量 GetTroopListResp, GetTroopListResp
.局部变量 GetMultiTroopInfoResp, GetMultiTroopInfoResp
.局部变量 GetTroopMemberListResp, GetTroopMemberListResp
.局部变量 RespGetEncounterV2, RespGetEncounterV2
.局部变量 bin, 字节集
.局部变量 i, 整数型
.局部变量 sy, 整数型
.局部变量 k, 整数型
.局部变量 count, 整数型
.局部变量 index, 整数型
.局部变量 iDiscUin, 整数型
.计次循环首 (9999999999, )
bin = Aqq.Fun_recv ()
unFriendpack.ReadFromStream (bin, PacketInfo, VecFun)
.如果真 (PacketInfo.iRequestId ≠ 0)
Aqq.Set_LastReqId (PacketInfo.iRequestId)
.如果真结束
.判断开始 (PacketInfo.sFuncName = “GetFriendListReq”)
unFriendpack.Unpack_FriendListRes (VecFun [1].buffer, FriendResp, FriendInfo, GList)
Aqq.Add_FriendInfo (FriendInfo)
.判断开始 (FriendResp.startIndex + FriendResp.getfriendCount < FriendResp.totoal_friend_count)
Aqq.Fun_friendlist_getFriendGroupList (FriendResp.startIndex + FriendResp.getfriendCount, 40)
.默认
' 读取完了。全部加入
Aqq.Get_FriendInfo (FriendInfo)
.计次循环首 (取数组成员数 (FriendInfo), i)
sy = 超级列表框_好友列表.插入表项 (, 到文本 (超级列表框_好友列表.取表项数 () + 1), , , , )
超级列表框_好友列表.置标题 (sy, 1, 到文本 (FriendInfo
.friendUin))
超级列表框_好友列表.置标题 (sy, 2, 到文本 (FriendInfo .name))
.计次循环尾 ()
.判断结束
.判断 (PacketInfo.sFuncName = “GetTroopListReq”)
' 接收到群列表
index = 1
count = 20
unFriendpack.Unpack_GetTroopListReq (VecFun [1].buffer, GetTroopListResp)
Aqq.Fun_friendlist_GetMultiTroopInfoReq (GetTroopListResp, (index - 1) × count, count)
.判断 (PacketInfo.sFuncName = “GetMultiTroopInfoReq”)
unFriendpack.Unpack_GetMultiTroopInfoResp (VecFun [1].buffer, GetMultiTroopInfoResp)
.判断开始 (count × index < GetTroopListResp.iNum)
Aqq.Add_stTroopInfoV2 (GetMultiTroopInfoResp.vecGroupCode, count)
index = index + 1
Aqq.Fun_friendlist_GetMultiTroopInfoReq (GetTroopListResp, (index - 1) × count, count)
.默认
Aqq.Add_stTroopInfoV2 (GetMultiTroopInfoResp.vecGroupCode, GetTroopListResp.iNum - count × (index - 1))
Aqq.Get_stTroopInfoV2 (stTroopInfoV2)
.计次循环首 (取数组成员数 (stTroopInfoV2), i)
sy = 超级列表框_群列表.插入表项 (, 到文本 (超级列表框_群列表.取表项数 () + 1), , , , )
超级列表框_群列表.置标题 (sy, 1, 到文本 (stTroopInfoV2 .dwGroupCode))
超级列表框_群列表.置标题 (sy, 2, 到文本 (stTroopInfoV2 .strGroupName))
超级列表框_群列表.置标题 (sy, 3, 到文本 (stTroopInfoV2 .strGroupMemo))
.计次循环尾 ()
.判断结束
.判断 (PacketInfo.sFuncName = “CMD_GET_ENCOUNTERV2”)
调试输出 (“附近的人”)
unFriendpack.Unpack_RespGetEncounterV2 (VecFun [1].buffer, RespGetEncounterV2)
标签_省会.标题 = RespGetEncounterV2.stUserData.strProvince
Aqq.Set_LastUserData (RespGetEncounterV2.stUserData)
.计次循环首 (RespGetEncounterV2.iNum, i)
sy = 超级列表框_附近的人.插入表项 (, 到文本 (超级列表框_附近的人.取表项数 () + 1), , , , )
超级列表框_附近的人.置标题 (sy, 1, 到文本 (RespGetEncounterV2.vEncounterInfos .lEctID))
超级列表框_附近的人.置标题 (sy, 2, 到文本 (RespGetEncounterV2.vEncounterInfos .strNick))
超级列表框_附近的人.置标题 (sy, 3, 到文本 (RespGetEncounterV2.vEncounterInfos .strDescription))
.计次循环尾 ()
.判断 (PacketInfo.sFuncName = “SvcReqPushMsg”)
' 有好友消息到了
.计次循环首 (取数组成员数 (VecFun), i)
.计次循环首 (VecFun .SvcReqPushMsg.iMsgNum, k)
' Call 好友信息回调
调试输出 (“来自:”, VecFun .SvcReqPushMsg.vMsgInfos [k].lFromUin, iconv.Utf8ToAnsi (VecFun .SvcReqPushMsg.vMsgInfos [k].vMsg))
有信息到达 (VecFun .SvcReqPushMsg.vMsgInfos [k])
.计次循环尾 ()
.计次循环尾 ()
.判断 (PacketInfo.sFuncName ≠ “”)
调试输出 (“PacketInfo.sFuncName ”, PacketInfo.sFuncName, Xbin.Bin2Hex (bin))
.默认
' 调试输出 (“PacketInfo.sFuncName ”, PacketInfo.sFuncName, Xbin.Bin2Hex (bin))
.判断结束
.计次循环尾 ()