• C# 软件绑定QQ群类开源放出


    周天闲来无事写个公共类,可以添加到你们自己项目中限制必须加入你QQ群才可以使用。

    代码简单,高手勿喷,有哪里不合理的请回帖让大家学习学习。

    using System;
    using System.Text;
    using System.Windows.Forms;
     
    #region 调用例子
    //CheckQQQun QQ = new CheckQQQun("306473605");
    //QQ.CheckResult += new CheckQQQun.CheckQun(QQ_CheckResult);
    //void QQ_CheckResult(bool Result)
    //{
    //    if (Result)
    //    {
    //        //已授权
    //    }
    //    else
    //    {
     
    //        //未授权
    //    }
    //} 
    #endregion
    /// <summary>
    /// QQ群验证
    /// </summary>
    public partial class CheckQQQun
    {
     
        // 创建一个委托,返回类型为void,两个参数
        public delegate void CheckQun(bool Result);
        // 将创建的委托和特定事件关联,在这里特定的事件为KeyDown
        public event CheckQun CheckResult;
        WebBrowser webBrowser1 = new WebBrowser();
        public bool GetQunList;
        string CurrQun = string.Empty;
        public CheckQQQun(string Number)
        {
            CurrQun = Number;
            webBrowser1.Navigate("http://xui.ptlogin2.qq.com/div/qlogin_div.html?flag2=3&u1=http%253A%252F%252Fqun.qzone.qq.com%252Fgroup");
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        }
     
        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var loginbtn = webBrowser1.Document.GetElementById("loginbtn");
            if (loginbtn != null)
            {
                webBrowser1.Document.GetElementById("loginbtn").InvokeMember("Click");
            }
            else
            {
                if (webBrowser1.Url.ToString().IndexOf("http://qun.qzone.qq.com/cgi-bin/get_group_list") == -1)
                {
                    HtmlElement qqscript = webBrowser1.Document.CreateElement("script");
                    qqscript.SetAttribute("type", "text/javascript");
                    qqscript.SetAttribute("text", "function GetQQ(){return g_iUin;}");
                    webBrowser1.Document.Body.AppendChild(qqscript);
     
                    HtmlElement script = webBrowser1.Document.CreateElement("script");
                    script.SetAttribute("type", "text/javascript");
                    script.SetAttribute("text", "function GetToken(){return QWT.getACSRFToken()}");
                    webBrowser1.Document.Body.AppendChild(script);
                    webBrowser1.Navigate("http://qun.qzone.qq.com/cgi-bin/get_group_list?uin=" + webBrowser1.Document.InvokeScript("GetQQ").ToString() + "&g_tk=" + Convert.ToInt32(webBrowser1.Document.InvokeScript("GetToken").ToString()));
                }
                else
                {
                    if (webBrowser1.DocumentText.IndexOf(CurrQun)!=-1)
                    {
                        if (CheckResult!=null)
                        {
                            CheckResult(true);
                        }
                    }
                    else
                    {
                        if (CheckResult != null)
                        {
                            CheckResult(false);
                        }
                    }
                }
            }
        }
    }
    
  • 相关阅读:
    Netty 零拷贝(一)Linux 零拷贝
    启动服务(上)服务端:NioServerSocketChannel 是什么时候激活的
    Reactor 模型(一)基本并发编程模型
    并发编程(三)Promise, Future 和 Callback
    并发编程(二)concurrent 工具类
    并发编程(一)同步类容器和并发类容器
    Executor(二)ThreadPoolExecutor、ScheduledThreadPoolExecutor 及 Executors 工厂类
    Executor(一)ExecutorService 线程池
    Java NIO系列教程(一四) Files
    Java NIO系列教程(一三) Path
  • 原文地址:https://www.cnblogs.com/tom-cat/p/4625922.html
Copyright © 2020-2023  润新知