群聊音信收发,登陆成功后获得

发送 poll包

图片 1

  1图片 2using System.Data;
  2图片 3using System.Data.SqlClient;
  3图片 4using System.Configuration;
  4图片 5using System.Web;
  5图片 6using System.Web.Security;
  6图片 7using System.Web.UI;
  7图片 8using System.Web.UI.WebControls;
  8图片 9using System.Web.UI.WebControls.WebParts;
  9图片 10using System.Web.UI.HtmlControls;
 10图片 11using System.Drawing;
 11图片 12using System.IO;
 12图片 13using System.Web.Mail;
 13图片 14using System.Text.RegularExpressions;
 14图片 15using System.Text;
 15图片 16
 16图片 17图片 18/**//// <summary>
 17图片 19/// CommonUI 公共艺术
 18图片 20/// </summary>
 19图片 21public class CommonUI : System.Web.UI.Page
 20图片 22图片 23图片 24{
 21图片 25
 22图片 26图片 27    只弹出新闻#region 只弹出新闻
 23图片 28图片 29    /**//// <summary>
 24图片 30    /// 只弹出音信
 25图片 31    /// </summary>
 26图片 32    /// <param name="msg">弹出的新闻</param>
 27图片 33    public static void Alert(string msg)
 28图片 34图片 35    图片 36{
 29图片 37        string s = "<script language='javascript' >alert(""   msg   "");</script>";
 30图片 38        HttpContext.Current.Response.Write(s);
 31图片 39    }
 32图片 40    #endregion
 33图片 41
 34图片 42图片 43    弹出并重返#region 弹出并回到
 35图片 44图片 45    /**//// <summary>
 36图片 46    /// 弹出并赶回
 37图片 47    /// </summary>
 38图片 48    /// <param name="msg">弹出的新闻</param>
 39图片 49    /// <param name="msg">重临哪超级的数字:如-1回去上黄金年代页</param>
 40图片 50    public static void AlertAndGo(string msg, int intGo)
 41图片 51图片 52    图片 53{
 42图片 54        string s = "<script language='javascript' >alert(""   msg   "");history.go("   intGo   ")</script>";
 43图片 55        HttpContext.Current.Response.Write(s);
 44图片 56    }
 45图片 57    #endregion
 46图片 58
 47图片 59图片 60    只实行页面跳转#region 只进行页面跳转
 48图片 61图片 62    /**//// <summary>
 49图片 63    /// 只实行页面跳转
 50图片 64    /// </summary>
 51图片 65    /// <param name="url">跳转的对象UQashqaiL</param>
 52图片 66    public static void AlertRedirect(string url)
 53图片 67图片 68    图片 69{
 54图片 70        string s = "<script language='javascript' >window.location='"   url   "';</script>";
 55图片 71        HttpContext.Current.Response.Write(s);
 56图片 72    }
 57图片 73    #endregion
 58图片 74
 59图片 75图片 76    突显音讯提醒对话框,并开展页面跳转#region 展现音信提醒对话框,并进行页面跳转
 60图片 77图片 78    /**//// <summary>
 61图片 79    /// 展现消息提示对话框,并扩充页面跳转 
 62图片 80    /// </summary>
 63图片 81    /// <param name="msg">提醒新闻</param>
 64图片 82    /// <param name="url">跳转的目的UEscortL</param>
 65图片 83    public static void AlertAndRedirect(string msg, string url)
 66图片 84图片 85    图片 86{
 67图片 87        string s = "<script language='javascript' >alert(""   msg   "");window.location='"   url   "';</script>";
 68图片 88        HttpContext.Current.Response.Write(s);
 69图片 89    }
 70图片 90    #endregion
 71图片 91
 72图片 92图片 93    决断是还是不是日期#region 判别是不是日期
 73图片 94图片 95    /**//// <summary>
 74图片 96    /// 决断是或不是日期
 75图片 97    /// </summary>
 76图片 98    /// <param name="strValue">剖断是或不是日期</param>
 77图片 99    /// <returns>bool</returns>
 78图片 100    public static bool IsDateTime(string strValue)
 79图片 101图片 102    图片 103{
 80图片 104        bool bolReturn;
 81图片 105        DateTime dteReturn;
 82图片 106        if (strValue == null)
 83图片 107图片 108        图片 109{
 84图片 110            bolReturn = false;
 85图片 111        }
 86图片 112        try
 87图片 113图片 114        图片 115{
 88图片 116            dteReturn = Convert.ToDateTime(strValue);
 89图片 117            bolReturn = true;
 90图片 118        }
 91图片 119        catch
 92图片 120图片 121        图片 122{
 93图片 123            bolReturn = false;
 94图片 124        }
 95图片 125        return bolReturn;
 96图片 126    }
 97图片 127    #endregion
 98图片 128
 99图片 129图片 130    将字符串调换到日期#region 将字符串转换来日期
100图片 131图片 132    /**//// <summary>
101图片 133    /// 将字符串转变来日期
102图片 134    /// </summary>
103图片 135    /// <param name="strValue">将字符串调换到日期</param>
104图片 136    /// <returns>int</returns>
105图片 137    public static DateTime GetDateTime(string strValue)
106图片 138图片 139    图片 140{
107图片 141        return Convert.ToDateTime(strValue);
108图片 142    }
109图片 143    #endregion
110图片 144
111图片 145图片 146    汉字字符串转拼音缩写#region 汉字字符串转拼音缩写
112图片 147图片 148    /**//// <summary>
113图片 149    /// 汉字字符串转拼音缩写
114图片 150    /// </summary>
115图片 151    /// <param name="str">要转移的方块字字符串</param>
116图片 152    /// <param name="IsSmallChar">是或不是用小写字母</param>
117图片 153    /// <returns>拼音缩写</returns>
118图片 154    public static string GetPYString(string str,bool IsSmallChar)
119图片 155图片 156    图片 157{
120图片 158        string tempStr = "";
121图片 159        foreach (char c in str)
122图片 160图片 161        图片 162{
123图片 163            if ((int)c >= 33 && (int)c <= 126)
124图片 164图片 165            图片 166{//字母和标记原样保留
125图片 167                tempStr  = c.ToString();
126图片 168            }
127图片 169            else
128图片 170图片 171            图片 172{//累积拼音声母
129图片 173                tempStr  = GetPYChar(c.ToString(), IsSmallChar);
130图片 174            }
131图片 175        }
132图片 176        return tempStr;
133图片 177    }
134图片 178    #endregion
135图片 179
136图片 180图片 181    将单个汉字转拼音缩写#region 将单个汉字转拼音缩写
137图片 182图片 183    /**//// <summary>
138图片 184    /// 将单个汉字转拼音缩写
139图片 185    /// </summary>
140图片 186    /// <param name="c">要转移的单个汉字</param>
141图片 187    /// <param name="IsSmallChar">是还是不是用小写字母</param>
142图片 188    /// <returns>拼音声母</returns>
143图片 189    public static string GetPYChar(string c, bool IsSmallChar)
144图片 190图片 191    图片 192{
145图片 193        byte[] array = new byte[2];
146图片 194        string strReturn = "*";
147图片 195        array = System.Text.Encoding.Default.GetBytes(c);
148图片 196        int i = (short)(array[0] - '\0') * 256   ((short)(array[1] - '\0'));
149图片 197
150图片 198        if (i < 0xB0A1) strReturn = "*";
151图片 199        if (i < 0xB0C5) strReturn = "A";
152图片 200        if (i < 0xB2C1) strReturn = "B";
153图片 201        if (i < 0xB4EE) strReturn = "C";
154图片 202        if (i < 0xB6EA) strReturn = "D";
155图片 203        if (i < 0xB7A2) strReturn = "E";
156图片 204        if (i < 0xB8C1) strReturn = "F";
157图片 205        if (i < 0xB9FE) strReturn = "G";
158图片 206        if (i < 0xBBF7) strReturn = "H";
159图片 207        if (i < 0xBFA6) strReturn = "J";
160图片 208        if (i < 0xC0AC) strReturn = "K";
161图片 209        if (i < 0xC2E8) strReturn = "L";
162图片 210        if (i < 0xC4C3) strReturn = "M";
163图片 211        if (i < 0xC5B6) strReturn = "N";
164图片 212        if (i < 0xC5BE) strReturn = "O";
165图片 213        if (i < 0xC6DA) strReturn = "P";
166图片 214        if (i < 0xC8BB) strReturn = "Q";
167图片 215        if (i < 0xC8F6) strReturn = "R";
168图片 216        if (i < 0xCBFA) strReturn = "S";
169图片 217        if (i < 0xCDDA) strReturn = "T";
170图片 218        if (i < 0xCEF4) strReturn = "W";
171图片 219        if (i < 0xD1B9) strReturn = "X";
172图片 220        if (i < 0xD4D1) strReturn = "Y";
173图片 221        if (i < 0xD7FA) strReturn = "Z";
174图片 222
175图片 223        if (IsSmallChar) strReturn =strReturn.ToLower();//是还是不是用小写
176图片 224
177图片 225        return strReturn;
178图片 226    }
179图片 227    #endregion
180图片 228
181图片 229图片 230    向地点中投入?或&#region 向地方中参加?或&
182图片 231图片 232    /**//// <summary>
183图片 233    /// 向地点中参预?或&
184图片 234    /// </summary>
185图片 235    /// <param name="strValue">要管理的字符串</param>
186图片 236    /// <returns>加了?或&的网址</returns>
187图片 237    public static string JoinChar(string strValue)
188图片 238图片 239    图片 240{
189图片 241        int intValue1, intValue2, intLen;
190图片 242
191图片 243        intLen = strValue.Length;
192图片 244        intValue1 = strValue.IndexOf("?");
193图片 245        intValue2 = strValue.LastIndexOf("&");
194图片 246        if (intValue1 > 0 && intValue1 < intLen - 1)
195图片 247图片 248        图片 249{
196图片 250            if ((intValue2 > 0 && intValue2 < intLen - 1) || intValue2 == -1)
197图片 251图片 252            图片 253{
198图片 254                return strValue   "&";
199图片 255            }
200图片 256            else
201图片 257图片 258            图片 259{
202图片 260                return strValue;
203图片 261            }
204图片 262        }
205图片 263        else if (intValue1 == intLen - 1)
206图片 264图片 265        图片 266{
207图片 267            return strValue;
208图片 268        }
群聊音信收发,登陆成功后获得。209图片 269        else
210图片 270图片 271        图片 272{
211图片 273            return strValue   "?";
212图片 274        }
213图片 275
214图片 276    }
215图片 277    #endregion
216图片 278
217图片 279图片 280    去掉地址中"page="及其背后字符#region 去掉地址中"page="及其背后字符
218图片 281图片 282    /**//// <summary>
219图片 283    /// 去掉地址中&page="及其背后字符
220图片 284    /// </summary>
221图片 285    /// <param name="strValue">要管理的字符串</param>
222图片 286    /// <returns>去掉地址中"page="及其背后字符</returns>
223图片 287    public static string GetPageURL(string strValue)
224图片 288图片 289    图片 290{
225图片 291        int intValue, intLen;
226图片 292
227图片 293        intLen = strValue.Length;
228图片 294        intValue = strValue.IndexOf("page=");
229图片 295        if (intValue > 0 && intValue < intLen - 5)
230图片 296图片 297        图片 298{
231图片 299            return strValue.Substring(0, intValue);
232图片 300        }
233图片 301        else
234图片 302图片 303        图片 304{
235图片 305            return strValue;
236图片 306        }
237图片 307
238图片 308    }
239图片 309    #endregion
240图片 310
241图片 311图片 312    过滤/还原 带有 HTML-JS 的字符串#region 过滤/还原 带有 HTML-JS 的字符串
242图片 313    public static string htmlInputText(string inputString)//HTML过滤输入字符串
243图片 314图片 315    图片 316{
244图片 317        if ((inputString != null) && (inputString != String.Empty))
245图片 318图片 319        图片 320{
246图片 321            inputString = inputString.Trim();
247图片 322            inputString = inputString.Replace("'", """);
248图片 323            inputString = inputString.Replace("<", "<");
249图片 324            inputString = inputString.Replace(">", ">");
250图片 325            inputString = inputString.Replace(" ", " ");
251图片 326            inputString = inputString.Replace("n", "<br>");
252图片 327            return inputString.ToString();
253图片 328        }
254图片 329        return "";
255图片 330    }
256图片 331
257图片 332    public static string htmlOutputText(string inputString)//HTML还原字符串
258图片 333图片 334    图片 335{
259图片 336        if ((inputString != null) && (inputString != String.Empty))
260图片 337图片 338        图片 339{
261图片 340            inputString = inputString.Trim();
262图片 341            inputString = inputString.Replace(""", "'");
263图片 342            inputString = inputString.Replace("<", "<");
264图片 343            inputString = inputString.Replace(">", ">");
265图片 344            inputString = inputString.Replace(" ", " ");
266图片 345            inputString = inputString.Replace("<br>", "n");
267图片 346            return inputString.ToString();
268图片 347        }
269图片 348        return "";
270图片 349    }
271图片 350
272图片 351    public static string htmlInputTextfck(string inputString)//HTML还原字符串
273图片 352图片 353    图片 354{
274图片 355        if ((inputString != null) && (inputString != String.Empty))
275图片 356图片 357        图片 358{
276图片 359            inputString = inputString.Trim();
277图片 360            inputString = inputString.Replace("'", " ");
278图片 361            inputString = inputString.Replace(" ", "    ");
279图片 362            return inputString.ToString();
280图片 363        }
281图片 364        return "";
282图片 365    }
283图片 366
284图片 367    public static string htmlInputface(string inputString)//HTML过滤输入字符串
285图片 368图片 369    图片 370{
286图片 371        if ((inputString != null) && (inputString != String.Empty))
287图片 372图片 373        图片 374{
288图片 375            inputString = inputString.Trim();
289图片 376            inputString = inputString.Replace("'", """);
290图片 377            inputString = inputString.Replace("<", "<");
291图片 378            inputString = inputString.Replace(">", ">");
292图片 379            inputString = inputString.Replace(" ", " ");
293图片 380            inputString = inputString.Replace("n", "<br>");
294图片 381            inputString = inputString.Replace("{image01}", "<IMG src=face/01.gif>");
295图片 382            inputString = inputString.Replace("{image02}", "<IMG src=face/02.gif>");
296图片 383            inputString = inputString.Replace("{image03}", "<IMG src=face/03.gif>");
297图片 384            inputString = inputString.Replace("{image04}", "<IMG src=face/04.gif>");
298图片 385            inputString = inputString.Replace("{image05}", "<IMG src=face/05.gif>");
299图片 386            inputString = inputString.Replace("{image06}", "<IMG src=face/06.gif>");
300图片 387            inputString = inputString.Replace("{image07}", "<IMG src=face/07.gif>");
301图片 388            inputString = inputString.Replace("{image08}", "<IMG src=face/08.gif>");
302图片 389            inputString = inputString.Replace("{image09}", "<IMG src=face/09.gif>");
303图片 390            inputString = inputString.Replace("{image10}", "<IMG src=face/10.gif>");
304图片 391            inputString = inputString.Replace("{image11}", "<IMG src=face/11.gif>");
305图片 392            return inputString.ToString();
306图片 393        }
307图片 394        return "";
308图片 395    }
309图片 396
310图片 397    #endregion
311图片 398
312图片 399图片 400    去除HTML标记#region 去除HTML标记 
313图片 401图片 402    /**//// <summary>
314图片 403    /// 去除HTML标记 
315图片 404    /// 或然用简易的,直接除去<>里面包车型客车内容 
316图片 405    /// = System.Text.RegularExpressions.Regex.Replace(strHtml, "<[^>] >", ""); 
317图片 406    /// </summary>
318图片 407    /// <param name="NoHTML">包括HTML的源码 </param>
319图片 408    /// <returns>已经删除后的文字</returns>
320图片 409    public static string NoHTML(string Htmlstring)
321图片 410图片 411    图片 412{
322图片 413        //删除脚本
323图片 414        Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
324图片 415
325图片 416        //删除HTML
326图片 417        Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
327图片 418        Htmlstring = Regex.Replace(Htmlstring, @"([rn])[s] ", "", RegexOptions.IgnoreCase);
328图片 419        Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
329图片 420        Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
330图片 421
331图片 422        Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", """, RegexOptions.IgnoreCase);
332图片 423        Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
333图片 424        Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
334图片 425        Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
335图片 426        Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
336图片 427        Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "xa1", RegexOptions.IgnoreCase);
337图片 428        Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "xa2", RegexOptions.IgnoreCase);
338图片 429        Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "xa3", RegexOptions.IgnoreCase);
339图片 430        Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "xa9", RegexOptions.IgnoreCase);
340图片 431        Htmlstring = Regex.Replace(Htmlstring, @"(d );", "", RegexOptions.IgnoreCase);
341图片 432        Htmlstring.Replace("<", "");
342图片 433        Htmlstring.Replace(">", "");
343图片 434        Htmlstring.Replace("rn", "");
344图片 435        Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
345图片 436
346图片 437        return Htmlstring;
347图片 438
348图片 439    }
349图片 440    #endregion
350图片 441
351图片 442图片 443    从左侧取钦命长度的字符串 中文算 2 个#region 从左边取内定长度的字符串 中文算 2 个
352图片 444图片 445    /**//// <summary>
353图片 446    /// 从侧边取钦定长度的字符串 汉语算 2 个
354图片 447    /// </summary>
355图片 448    /// <param name="inputString">要截取的字符串</param>
356图片 449    /// <param name="len">要截取的长度</param>
357图片 450    /// <param name="bolPoint">是不是出示图片 451</param>
358图片 452    /// <returns>截取后的字符串</returns>
359图片 453    public static string CutString(string inputString, int len, bool bolPoint)
360图片 454图片 455    图片 456{
361图片 457
362图片 458        ASCIIEncoding ascii = new ASCIIEncoding();
363图片 459        int tempLen = 0;
364图片 460        string tempString = "";
365图片 461        byte[] s = ascii.GetBytes(inputString);
366图片 462        for (int i = 0; i < s.Length; i )
367图片 463图片 464        图片 465{
368图片 466            //中文算 2 个
369图片 467            if ((int)s[i] == 63)
370图片 468图片 469            图片 470{
371图片 471                tempLen  = 2;
372图片 472            }
373图片 473            else
374图片 474图片 475            图片 476{
375图片 477                tempLen  = 1;
376图片 478            }
377图片 479
378图片 480            try
379图片 481图片 482            图片 483{
380图片 484                tempString  = inputString.Substring(i, 1);
381图片 485            }
382图片 486            catch
383图片 487图片 488            图片 489{
384图片 490                break;
385图片 491            }
386图片 492
387图片 493            if (tempLen > len)
388图片 494                break;
389图片 495        }
390图片 496
391图片 497        //加上半个省略号
392图片 498        byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
393图片 499        if (bolPoint && mybyte.Length > len)
394图片 500图片 501        图片 502{
395图片 503            tempString  = "…";
396图片 504        }
397图片 505
398图片 506        return tempString;
399图片 507    }
400图片 508    #endregion
401图片 509
402图片 510}

public static class MessageBox
{
/// <summary>
/// 显示音讯提醒对话框
/// </summary>
/// <param name="page">当前页面指针,通常为this</param>
/// <param name="msg">提示音讯</param>
public static void Show(System.Web.UI.Page page, string msg)
{
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "message", "<script type="text/javascript" language="javascript" defer>alert('" StrSafe "');</script>");
}

public static void Login_PostPoll()
{
try
{
string url = "";
string dat = "{"ptwebqq":"#{ptwebqq}","clientid":53999199,"psessionid":"#{psessionid}","key":""}";
dat = dat.Replace("#{ptwebqq}", Login_ptwebqq).Replace("#{psessionid}", Login_Psessionid);
dat = "r=" HttpUtility.UrlEncode(dat);
HTTP.Post_Async_Action action = Message_Get;
HTTP.Post_Async(url, dat, action);
}
catch (Exception) { Login_PostPoll(); }
}
#endregion
#region 采用到新闻的回调函数
/// <summary>
/// 选择到音信的回调函数
/// </summary>
/// <param name="data">选取到的数目(json)</param>
private static bool Running = true;
public static void Message_Get(string data)
{
Task.Run(() => Login_PostPoll());
if (Running)
Task.Run(() => Message_Process(data));//那么些是拍卖收到音信的此外三个办法具体管理在源码
}

 

/// <summary>
/// 呈现音讯提醒对话框
/// </summary>
/// <param name="page">当前页面指针,平常为this</param>
/// <param name="msg">提醒音信</param>
public static void Show(System.Web.UI.Page page, string key, string msg)
{
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), key, "<script type="text/javascript" language="javascript" defer>alert('" StrSafe "');</script>");
}

以上正是poll包的管理以致 收到的新闻管理

public static void Login_GetPHV()
{
string urldata = "{"ptwebqq":"#{ptwebqq}","clientid":53999199,"psessionid":"","status":"online"}".Replace("#{ptwebqq}", Login_ptwebqq);
urldata = "r=" HttpUtility.UrlEncode(urldata);
string dat = HTTP.Post("", urldata, "");

/// <summary>
/// 提醒音信关闭页面,信息可为空不显得。
/// </summary>
/// <param name="page">当前页面指针,平日为this</param>
/// <param name="msg">提醒消息,为空则不提醒</param>
public static void Close(System.Web.UI.Page page, string msg)
{
string js = "<script type="text/javascript" language="javascript" defer>";
if (msg != "")
js = "alert('" msg.ToString;";
js = "window.close();</script>";
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "message", js);
}
/// <summary>
/// 提醒消息关闭页面,音讯可为空不出示。
/// </summary>
/// <param name="page">当前页面指针,平日为this</param>
/// <param name="msg">提示消息,为空则不提示</param>
public static void Close(System.Web.UI.Page page, string key, string msg)
{
string js = "<script type="text/javascript" language="javascript" defer>";
if (msg != "")
js = "alert('" msg.ToString;";
js = "window.close();</script>";
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), key, js);
}

接下去是 发送的 

Login_Psessionid = dat.Replace(":", ",").Replace("{", "").Replace("}", "").Replace(""", "").Split(',')[10];
Login_QQ = dat.Replace(":", ",").Replace("{", "").Replace("}", "").Replace(""", "").Split(',')[14];//登录QQ
//Login_Vfwebqq = dat.Replace(":", ",").Replace("{", "").Replace("}", "").Replace(""", "").Split(',')[18];
Login_Hash = Hash2(Login_QQ, Login_ptwebqq);// 在此个js 得到非常hash的值 JS里面包车型大巴办法名是Hash2 里面是16进制 须要改造到C#的种类。第多少个参数是忠实QQ第1个ptwebqq
//一先河拿地点的cookie 里面包车型客车Vfwebqq,是充裕的,再诉求一遍,得到收获老铁音信的vfwebqq
string urlvfwebqq = "", Login_ptwebqq).Replace("#{t}", TimeStamp());
string datVfwebqq = HTTP.Get(urlvfwebqq, "");
Login_Vfwebqq = datVfwebqq.Split('"')[7];
SendOnlog(Login_QQ "/r/n" Login_Vfwebqq "/r/n" Login_Psessionid

/// <summary>
/// 屏蔽提醒关闭窗口
/// </summary>
/// <param name="page"></param>
/// <param name="msg"></param>
public static void DClose(System.Web.UI.Page page, string msg)
{
StringBuilder js = new StringBuilder("<script type="text/javascript" language="javascript" defer>");
if (msg != "")
js.AppendLine("alert('" msg.ToString;");
js.AppendLine("var ua = navigator.userAgent; var ie = navigator.appName=="Microsoft Internet Explorer"?true:false;");
js.AppendLine{");
js.AppendLine("var IEversion = parseFloat(ua.substring(ua.indexOf("MSIE ") 5,ua.indexOf(";",ua.indexOf("MSIE "))));");
js.AppendLine("if( IEversion< 5.5){");
js.AppendLine("var str = '';");
js.AppendLine("document.body.insertAdjacentHTML("beforeEnd", str);");
js.AppendLine("document.all.noTipClose.Click;
js.AppendLine("} else {");
js.AppendLine("window.opener =null; window.close;
js.AppendLine;
js.AppendLine;
js.AppendLine("window.close;
js.AppendLine("</script>");
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "message", js.ToString;
}

图片 511

  • "/r/n" Login_Hash);
    }

/// <summary>
/// 屏蔽提醒关闭窗口
/// </summary>
/// <param name="page"></param>
/// <param name="msg"></param>
public static void DClose(System.Web.UI.Page page, string key, string msg)
{
StringBuilder js = new StringBuilder("<script type="text/javascript" language="javascript" defer>");
if (msg != "")
js.AppendLine("alert('" msg.ToString;");
js.AppendLine("var ua = navigator.userAgent; var ie = navigator.appName=="Microsoft Internet Explorer"?true:false;");
js.AppendLine{");
js.AppendLine("var IEversion = parseFloat(ua.substring(ua.indexOf("MSIE ") 5,ua.indexOf(";",ua.indexOf("MSIE "))));");
js.AppendLine("if( IEversion< 5.5){");
js.AppendLine("var str = '';");
js.AppendLine("document.body.insertAdjacentHTML("beforeEnd", str);");
js.AppendLine("document.all.noTipClose.Click;
js.AppendLine("} else {");
js.AppendLine("window.opener =null; window.close;
js.AppendLine;
js.AppendLine;
js.AppendLine("window.close;
js.AppendLine("</script>");
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), key, js.ToString;
}

 

地点就足以获得 Login_ptwebqq  Login_Psessionid ,Login_Hash 这个hash  需要

/// <summary>
/// 控件点击音信确认提示框
/// </summary>
/// <param name="page">当前页面指针,日常为this</param>
/// <param name="msg">提示音信</param>
public static void ShowConfirm(System.Web.UI.WebControls.WebControl Control, string msg)
{
//Control.Attributes.Add("onClick","if (!window.confirm('" msg "')){return false;}");
Control.Attributes.Add("onclick", "return confirm('" msg "');");
}

 上边是发送的一连以致 发送后归来的 poll包音讯。代码如下 

在此个js 得到不行hash的值 JS里面包车型地铁办法名是Hash2 里面是16进制 须求转移成C# 也得以直接  调用那些JS。第三个参数是Login_QQ 第二个Login_ptwebqq  

/// <summary>
/// 展现音讯提醒对话框,并扩充页面跳转
/// </summary>
/// <param name="page">当前页面指针,日常为this</param>
/// <param name="msg">提示音信</param>
/// <param name="url">跳转的靶子U奇骏L</param>
public static void ShowAndRedirect(System.Web.UI.Page page, string msg, string url)
{
StringBuilder Builder = new StringBuilder();
Builder.Append("<script type="text/javascript" language="javascript" defer>");
if (msg != "")
Builder.AppendFormat("alert;", msg);
Builder.AppendFormat("window.location.href='{0}';", url);
Builder.Append("</script>");
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "message", Builder.ToString;
}

/// <summary>
///
/// </summary>
/// <param name="type">私聊0 群聊1 讨论组2</param>
/// <param name="uin">uin</param>
/// <param name="messageToSend">消息</param>
/// <param name="auto"></param>
/// <returns></returns>
public static bool Login_Postsend_buddy_msg(int type, string uin, string messageToSend)
{
if (messageToSend.Equals("") || uin.Equals(""))
return false;
string[] tmp = messageToSend.Split("{}".ToCharArray());
messageToSend = "";
for (int i = 0; i < tmp.Length; i )
if (!tmp[i].Trim().StartsWith("..[face") || !tmp[i].Trim().EndsWith("].."))
messageToSend = "\"" tmp[i] "\",";
else
messageToSend = tmp[i].Replace("..[face", "[\"face\",").Replace("]..", "],");
messageToSend = messageToSend.Remove(messageToSend.LastIndexOf(','));
messageToSend = messageToSend.Replace("rn", "n").Replace("nr", "n").Replace("r", "n").Replace("n", Environment.NewLine);
try
{
string to_groupuin_did, url;
switch (type)
{
case 0:
to_groupuin_did = "to";
url = "";
break;
case 1:
to_groupuin_did = "group_uin";
url = "";
break;
case 2:
to_groupuin_did = "did";
url = "";
break;
default:
return false;
}
string postData = "{"#{type}":#{id},"content":"[#{msg},[\"font\",{\"name\":\"繁体\",\"size\":10,\"style\":[0,0,0],\"color\":\"000000\"}]]","face":#{face},"clientid":53999199,"msg_id":#{msg_id},"psessionid":"#{psessionid}"}";
postData = "r=" HttpUtility.UrlEncode(postData.Replace("#{type}", to_groupuin_did).Replace("#{id}", uin).Replace("#{msg}", messageToSend).Replace("#{face}", SelfInfo.face.ToString()).Replace("#{msg_id}", rand.Next(10000000, 99999999).ToString()).Replace("#{psessionid}", Login_Psessionid));

public static string Hash2(string uin, string ptvfwebqq)
{
int[] ptbIndex = new int[4];
long QQ_Long = long.Parse(uin);
for (int i = 0; i < ptvfwebqq.Length; i )
{
ptbIndex[i % 4] ^= ptvfwebqq.ToCharArray()[i];
}
string[] salt = { "EC", "OK" };
long[] uinByte = new long[4];
uinByte[0] = QQ_Long >> 24 & 255 ^ salt[0].ToCharArray()[0];
uinByte[1] = QQ_Long >> 16 & 255 ^ salt[0].ToCharArray()[1];
uinByte[2] = QQ_Long >> 8 & 255 ^ salt[1].ToCharArray()[0];
uinByte[3] = QQ_Long & 255 ^ salt[1].ToCharArray()[1];

/// <summary>
/// 输出自定义脚本音信
/// </summary>
/// <param name="page">当前页面指针,平时为this</param>
/// <param name="script">输出脚本</param>
public static void ResponseScript(System.Web.UI.Page page, string script)
{
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "message", "<script type="text/javascript" language="javascript" defer>" script "</script>");
}
/// <summary>
/// 输出自定义脚本音讯
/// </summary>
/// <param name="page">当前页面指针,平常为this</param>
/// <param name="script">输出脚本</param>
public static void ResponseScript(System.Web.UI.Page page, string key, string script)
{
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), key, "<script type="text/javascript" language="javascript" defer>" script "</script>");
}

string dat = HTTP.Post(url, postData, "");
return dat.Equals("{"errCode":0,"msg":"send ok"}");
}
catch (Exception)
{
return false;
}
}

long[] result = new long[8];

/// <summary>
/// 页面后退
/// </summary>
/// <param name="page">当前页面指针,日常为this</param>
/// <param name="count">后倒退数</param>
public static void HistoryBack(System.Web.UI.Page page, int count)
{
StringBuilder Builder = new StringBuilder();
Builder.Append("<script type="text/javascript" language="javascript" defer>");
Builder.AppendFormat("window.history.go", count);
Builder.Append("</script>");
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "historygo", Builder.ToString;
}

 

for (int i = 0; i < 8; i )
{
result[i] = i % 2 == 0 ? ptbIndex[i >> 1] : uinByte[i >> 1];
}

/// <summary>
/// 再次来到上后生可畏页
/// </summary>
/// <returns></returns>
public static void HistoryBack(System.Web.UI.Page page)
{
page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "historygo", "<script type="text/javascript" language="javascript" defer>n window.history.go; n </script>");
}

那一讲费了重重小时,中间又去查了资料。极其是处理回来的 包的json ,不知情怎么格式化,只好替换出来,获得想要的多少。

string[] hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
string buf = "";

/// <summary>
/// js安全转移
/// </summary>
/// <param name="str">源字符</param>
/// <returns>重返代码</returns>
public static string StrSafe(string str)
{
StringBuilder rd = new StringBuilder;
rd.Replace("b", "\b");
rd.Replace("f", "\f");
rd.Replace("n", "\n");
rd.Replace("r", "\r");
rd.Replace("t", "\t");
rd.Replace("'", "\'");
rd.Replace(""", "\"");
return rd.ToString();
}

 

for (int i= 0; i < result.Length; i )
{
buf = hex[(int)((result[i] >> 4) & 15)];
buf = hex[(int)(result[i] & 15)];
}
return buf;
}

#region Ajax
/// <summary>
/// 展现音信提示对话框
/// </summary>
/// <param name="page">当前页面指针,经常为this</param>
/// <param name="msg">提示音讯</param>
public static void AjaxShow(System.Web.UI.Page page, string msg)
{
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "message", "alert('" StrSafe "');", true);
}
/// <summary>
/// 突显信息提示对话框
/// </summary>
/// <param name="page">当前页面指针,日常为this</param>
/// <param name="msg">提醒音信</param>
public static void AjaxShow(System.Web.UI.Page page, string key, string msg)
{
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), key, "alert('" StrSafe "');", true);
}
/// <summary>
/// 突显新闻提示对话框,并张开页面跳转
/// </summary>
/// <param name="page">当前页面指针,平日为this</param>
/// <param name="msg">提醒音讯</param>
/// <param name="url">跳转的对象URAV4L</param>
public static void AjaxShowAndRedirect(System.Web.UI.Page page, string msg, string url)
{
StringBuilder Builder = new StringBuilder();
if (msg != "")
Builder.AppendFormat("alert;", msg);
Builder.AppendFormat("window.location.href='{0}';", url);
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "message", Builder.ToString;
}
/// <summary>
/// 展现新闻提醒对话框,并进行页面跳转
/// </summary>
/// <param name="page">当前页面指针,常常为this</param>
/// <param name="msg">提醒新闻</param>
/// <param name="url">跳转的指标U奥迪Q5L</param>
public static void AjaxShowAndRedirect(System.Web.UI.Page page, string key, string msg, string url)
{
StringBuilder Builder = new StringBuilder();
if (msg != "")
Builder.AppendFormat("alert;", msg);
Builder.AppendFormat("window.location.href='{0}';", url);
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), key, Builder.ToString;
}
/// <summary>
/// 提醒音信关闭页面,消息可为空不显得。
/// </summary>
/// <param name="page">当前页面指针,平时为this</param>
/// <param name="msg">提示新闻,为空则不提示</param>
public static void AjaxClose(System.Web.UI.Page page, string msg)
{
string js = "";
if (msg != "")
js = "alert('" msg.ToString;";
js = "window.close();";
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "message", js, true);
}
/// <summary>
/// 提醒消息关闭页面,消息可为空不显示。
/// </summary>
/// <param name="page">当前页面指针,平日为this</param>
/// <param name="msg">提示音信,为空则不提醒</param>
public static void AjaxClose(System.Web.UI.Page page, string key, string msg)
{
string js = "";
if (msg != "")
js = "alert('" msg.ToString;";
js = "window.close();";
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), key, js, true);
}
/// <summary>
/// 输出自定义脚本音讯
/// </summary>
/// <param name="page">当前页面指针,平日为this</param>
/// <param name="script">输出脚本</param>
public static void AjaxResponseScript(System.Web.UI.Page page, string script)
{
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "message", script, true);
}
/// <summary>
/// 输出自定义脚本音讯
/// </summary>
/// <param name="page">当前页面指针,日常为this</param>
/// <param name="script">输出脚本</param>
public static void AjaxResponseScript(System.Web.UI.Page page, string key, string script)
{
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), key, script, true);
}
/// <summary>
/// 页面后退
/// </summary>
/// <param name="page">当前页面指针,日常为this</param>
/// <param name="count">后倒退数</param>
public static void AjaxHistoryBack(System.Web.UI.Page page, int count)
{
StringBuilder Builder = new StringBuilder();
Builder.AppendFormat("window.history.go;", count);
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "historygo", Builder.ToString;
}
/// <summary>
/// 重回上生龙活虎页
/// </summary>
/// <returns></returns>
public static void AjaxHistoryBack(System.Web.UI.Page page)
{
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "historygo", "window.history.go";", true);
}
#endregion
}

到未来停止,整个新手smart qq http 左券的教程 已经得以说成功了,因为那个合同的效应拾分纯净,而且超级多皆已经被TX去掉的,就疑似获取亲密的朋友的 真实QQ也早正是报错的。接下来就足以做图形分界面,还会有一些专门的学业了(qq机器人自动恢复生机等)

 

 

以上就是C# 获取smart qq  的vfwebqq ,psessionid,hash 

本文由星彩网app下载发布于计算机编程,转载请注明出处:群聊音信收发,登陆成功后获得

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。