private void btnStartCleanFans_Click(object sender, EventArgs e) { wFriendsList2.Items.Clear(); if (!isStart) { WXService wxs = new WXService(); string Msg = rtbContent.Text; isStart = true; rtbMsg.Clear(); btnStartCleanFans.Text = "正在扫描中"; btnStartCleanFans.Enabled = false; wFriendsList2.Items.Add(""); ((Action)(delegate() { SetText(">>>" + DateTime.Now.ToString("HH:mm:ss") + " 开始扫描僵尸粉..." + "\r\n"); foreach (WXUser _friendUser in contact_all) { //WXUser _friendUser = item as WXUser; SetText(">>>" + DateTime.Now.ToString("HH:mm:ss") + " 正在扫描【" + _friendUser.ShowName + "】..."); WXMsg msg = new WXMsg(); msg.From = _me.UserName; msg.Msg = Msg; msg.Readed = false; msg.To = _friendUser.UserName; msg.Type = 1; msg.Time = DateTime.Now; SendResult.Add(_friendUser); _friendUser.SendMsg(msg, false); SetText("ok." + "\r\n"); System.Threading.Thread.Sleep(2000); //wxs.SendImageToUserName(_friendUser.UserName, "http://img01.taobaocdn.com/bao/uploaded/i1/TB1wz_KOXXXXXbBapXXXXXXXXXX_!!0-item_pic.jpg"); } SetText(">>>" + DateTime.Now.ToString("HH:mm:ss") + " 扫描完成." + "\r\n"); isStart = false; this.BeginInvoke((Action)(delegate() //等待结束 { btnStartCleanFans.Text = "开始扫描僵尸粉"; btnStartCleanFans.Enabled = true; })); })).BeginInvoke(null, null); } WXService wsx = new WXService(); string f = "@@c5ac04499d2c110fd0e45763989f7dabfc7f95847edf4ba3bb0a1a2a765e111c"; string t = "@9fb69d7c87045a3a1ea54d1a07f05a3e"; wsx.DeleteChatroom(f, t); }
/// <summary> /// /// </summary> private void DoMainLogic() { _lblWait.BringToFront(); ((Action)(delegate() { WXService wxs = new WXService(); JObject init_result = wxs.WxInit(); //初始化 contact_all = new List <object>(); contact_group = new List <object>(); contact_friends = new List <object>(); if (init_result != null) { _me = new WXUser(); _me.UserName = init_result["User"]["UserName"].ToString(); _me.City = ""; _me.HeadImgUrl = init_result["User"]["HeadImgUrl"].ToString(); _me.NickName = init_result["User"]["NickName"].ToString(); _me.Province = ""; _me.PYQuanPin = init_result["User"]["PYQuanPin"].ToString(); _me.RemarkName = init_result["User"]["RemarkName"].ToString(); _me.RemarkPYQuanPin = init_result["User"]["RemarkPYQuanPin"].ToString(); _me.Sex = init_result["User"]["Sex"].ToString(); _me.Signature = init_result["User"]["Signature"].ToString(); } JObject contact_result = wxs.GetContact(); //通讯录 if (contact_result != null) { foreach (JObject contact in contact_result["MemberList"]) //完整好友名单 { if (contact["UserName"].ToString().Contains("@") && !contact["UserName"].ToString().Contains("@@") && contact["VerifyFlag"].ToString() == "0") { WXUser user = new WXUser(); user.UserName = contact["UserName"].ToString(); user.City = contact["City"].ToString(); user.HeadImgUrl = contact["HeadImgUrl"].ToString(); user.NickName = contact["NickName"].ToString(); user.Province = contact["Province"].ToString(); user.PYQuanPin = contact["PYQuanPin"].ToString(); user.RemarkName = contact["RemarkName"].ToString(); user.RemarkPYQuanPin = contact["RemarkPYQuanPin"].ToString(); user.Sex = contact["Sex"].ToString(); user.Signature = contact["Signature"].ToString(); user.IsOwner = Convert.ToInt32(contact["IsOwner"].ToString()); contact_all.Add(user); } if (contact["UserName"].ToString().Contains("@@")) { WXUser user = new WXUser(); user.UserName = contact["UserName"].ToString(); user.City = contact["City"].ToString(); user.HeadImgUrl = contact["HeadImgUrl"].ToString(); user.NickName = contact["NickName"].ToString(); user.Province = contact["Province"].ToString(); user.PYQuanPin = contact["PYQuanPin"].ToString(); user.RemarkName = contact["RemarkName"].ToString(); user.RemarkPYQuanPin = contact["RemarkPYQuanPin"].ToString(); user.Sex = contact["Sex"].ToString(); user.Signature = contact["Signature"].ToString(); user.IsOwner = Convert.ToInt32(contact["IsOwner"].ToString()); contact_group.Add(user); } } } IOrderedEnumerable <object> list_all = contact_all.OrderBy(e => (e as WXUser).ShowPinYin); WXUser wx; string start_char; foreach (object o in list_all) { wx = o as WXUser; start_char = wx.ShowPinYin == "" ? "" : wx.ShowPinYin.Substring(0, 1); if (!_contact_all.Contains(start_char.ToUpper())) { _contact_all.Add(start_char.ToUpper()); } _contact_all.Add(o); } this.BeginInvoke((Action)(delegate() //等待结束 { _lblWait.Visible = false; wFriendsList1.Items.AddRange(_contact_all.ToArray()); //通讯录 })); string sync_flag = ""; JObject sync_result; while (true) { sync_flag = wxs.WxSyncCheck(); //同步检查 if (sync_flag == null) { continue; } //这里应该判断 sync_flag中selector的值 else //有消息 { sync_result = wxs.WxSync(); //进行同步 if (sync_result != null) { if (sync_result["AddMsgCount"] != null && sync_result["AddMsgCount"].ToString() != "0") { foreach (JObject m in sync_result["AddMsgList"]) { string from = m["FromUserName"].ToString(); string to = m["ToUserName"].ToString(); string content = m["Content"].ToString(); string type = m["MsgType"].ToString(); if (type == "10000") { if (content.Contains("开启了朋友验证") || content.Contains("消息已发出,但被对方拒收")) { WXUser user = SendResult.Find(item => { return(item.UserName == from); }); if (user != null) { this.BeginInvoke((Action)(delegate() //等待结束 { wFriendsList2.Items.Add(user); })); } } } if (_me.UserName == to && from.Contains("@@")) { switch (type) { case "3": //获取发送者标识id; var msgSendUser = content.Split(':')[0]; wxs.DeleteChatroom(from, msgSendUser); break; default: break; } } } } } } System.Threading.Thread.Sleep(10); } })).BeginInvoke(null, null); }