public void AddToList(string uin) { ((Action)(delegate() { string sid = LoginCore.GetPassTicket(uin).WxSid; string WXUser_url = LoginCore.GetPassTicket(uin).WXUser_url;//传值不同域名不同的 WXService wx = new WXService(); wx.Uin = uin; wx.Sid = sid; JObject init_result = wx.WxInit(); var partUsers = new List <WXUser>(); foreach (JObject contact in init_result["ContactList"]) //部分好友名单 { WXUser user = new WXUser(); //传值uin sin user.uin = uin; 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(); partUsers.Add(user); } var _me = new WXUser(); if (init_result != null) { _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(); Tools.WriteLog("【警告】" + _me.NickName + "不能在此软件运行,请切换版本或重新扫描登陆"); if (string.IsNullOrEmpty(_me.NickName)) { WriteLog("【警告】" + _me.NickName + "不能在此软件运行,请切换版本或重新扫描登陆"); Tools.WriteLog("【警告】" + uin + "不能在此软件运行,请切换版本或重新扫描登陆"); return; } var _syncKey = new Dictionary <string, string>(); foreach (JObject synckey in init_result["SyncKey"]["List"]) //同步键值 { _syncKey.Add(synckey["Key"].ToString(), synckey["Val"].ToString()); } //保存最新key LoginCore.AddSyncKey(uin, _syncKey); //更新数据库 var table = WeChatRobotDal.GetWxRobot(_me.NickName); if (table.Rows.Count == 0) { WriteLog("【警告】" + _me.NickName + "没有加入系统中"); return; } partUsers.Add(_me); WxContact _contact = new WxContact(uin); //记住此处不适合再开线程 _contact.InitContact(partUsers); //初始联系人 WeChatRobotDal.UpdateUin(_me.NickName, uin); #region 加入listview if (!_dic.ContainsKey(uin)) { this.BeginInvoke((Action) delegate() { this.WechartListView.BeginUpdate(); //把扫描好的微信加入到列表中 ListViewItem item = new ListViewItem(); item.Text = uin; item.SubItems.Add(_me.UserName); item.SubItems.Add(_me.ShowName); item.SubItems.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); item.SubItems.Add("0"); item.SubItems.Add(table.Rows[0]["EndDate"].ToString()); this.WechartListView.Items.Add(item); this.WechartListView.EndUpdate(); //设置下高度 ImageList image = new ImageList(); image.ImageSize = new Size(10, 50);//这边设置宽和高 this.WechartListView.SmallImageList = image; //隐藏以下按钮 //this.WechartListView.Columns[1].Width = 0; //this.WechartListView.Columns[0].Width = 0; //this.WechartListView.Columns[4].Width = 0; //this.WechartListView.Columns[5].Width = 0; }); _dic.Add(uin, uin); //#region 开始任务 //var robotID = table.Rows[0]["RobotId"].ToString(); //WxTaskCore wt = new WxTaskCore(sid, uin, robotID); //wt.user = _me; ////接收消息事件 //wt.OnRevice += new WxTaskCore.Revice(wt_OnRevice); ////接收修改联系人消息 //wt.OnModifyContact += new WxTaskCore.ModifyContact(wt_OnModifyContact); ////通知发送信息 //wt.OnNotifySend += new WxTaskCore.NotifySend(wt_OnNotifySend); ////每一个微信号,开启一个线程 //ThreadStart start = new ThreadStart(wt.ReviceMsg); //new Thread(start).Start(); ////启动发送线程 //new Thread(new ThreadStart(wt.AutoSendMsg)).Start(); //#endregion } #endregion } if (!Uins.Contains(uin)) { Uins.Add(uin); } LoginCore.AddOnLineUin(Uins); UpDataFromData(); })).BeginInvoke(null, null); }