周天闲来无事写个公共类,可以添加到你们自己项目中限制必须加入你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);
}
}
}
}
}
}

C# 软件绑定QQ群类开源放出的更多相关文章

  1. 吐血分享:QQ群霸屏技术教程2017(活跃篇)

    热门词的群排名,在前期优化准备充分的情况下,活跃度不失为必杀技. 在<吐血分享:QQ群霸屏技术(初级篇)>中,我们提及到热门词的群排名,有了前面的基础,我们就可以进入深度优化,实现绝对的霸 ...

  2. [原创]软件质量保证圈QQ群:197915314

    [原创]软件质量保证圈QQ群:197915314 软件质量保证圈QQ群:197915314,讨论软件工程.软件过程改进.软件质量保证等(非测试群)! 欢迎各位同学来,来时请自报家门,名片修改格式:sh ...

  3. 不用软件快速拥有几百个QQ群并都是管理员

    不用软件快速拥有几百个QQ群并都是管理员!快速拥有有几十万精准数据库的方法 !和快速收集上亿邮箱的思维方法(附上5种赚钱方法).pdf_免费高速下载|百度云 网盘-分享无限制 http://pan.b ...

  4. 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)

    查看本章节 查看作业目录 需求说明: 小冰是微软公司研发的人工智能机器人,被腾讯公司加入 QQ 群后,立即受到千万网友的喜爱.现在使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的 ...

  5. 针对小程序for循环绑定数据,实现toggle切换效果(交流QQ群:604788754)

    如有更好的方法实现,可以留言或加群交流学习.谢谢(交流QQ群:604788754) WXML: <block wx:for="{{datanum}}" wx:for-inde ...

  6. 我们是怎么管理QQ群的

    文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...

  7. 前端资料QQ群交流

    转:https://github.com/jsfront/src/blob/master/qq.md 这本来是我QQ群内部的一份公共约定的日常交流规则,后来得到大伙的一致认可,并用实际行动来捍卫它,使 ...

  8. 吐血分享:QQ群霸屏技术教程2017(效益篇)

    懂得如何做群排名了,接下来就要实质性的考虑产出了. 可能,咱们经常发现,一些群里拉人的,进群看某片,5元钱终生,这类是灰色的.其实正规的付费空间也很大. 群利润空间 有工作,有产品,有项目,可以做群排 ...

  9. 一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片

    说点题外话. Coding中我们总是经历着这么几个过程. 学会使用: 不管是API也好, 开源库也好. 总是在最开始的学会去用. 了解实现原理: 可能会因为一些不兼容, 代码的异常状态的处理不够完美等 ...

随机推荐

  1. 【HDU1257】最少拦截系统(贪心)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  2. 自定义windows新建菜单

    注册表下找到hkey_classes_root 找到想要新建的文件扩展名(.txt,.php,.html,.xml etc.) 创建名为ShellNew的键,再在其下添加NullType的项

  3. webpack es6 to es5支持配置

    1. 安装webpack npm install webpack --save-dev 2. 安装babel  实现 ES6 到 ES5 npm install --save-dev babel-co ...

  4. MAC的终端命令

    今天小研究了一下MAC的终端命令,主要为了方便调试程序用,XCODE用不来啊... 在这里记下..防止丢失 pwd 当前工作目录 cd(不加参数) 进root cd(folder) 进入文件夹 cd ...

  5. 系统安全:Nessus Home版安装使用

    1.安装  下载地址:http://www.tenable.com/products/nessus/select-your-operating-system#tos 安装命令:rpm -ivh  Ne ...

  6. Use setInterval instead of setTimeout

    Use setInterval instead of setTimeout check out codes: http://jsfiddle.net/GustvandeWal/295jqqqb/

  7. Spring中javaMail通过SMTP发送邮件

    public final class Emails { /** The java mail sender. */ private static JavaMailSender javaMailSende ...

  8. NVMe over Fabrics又让RDMA技术火了一把

    RDMA是个什么鬼?相信大部分不关心高性能网络的童鞋都不太了解.但是NVMe over Fabrics的出现让搞存储的不得不抽出时间来看看这个东西,这篇文章就来介绍下我所了解的RDMA. RDMA(R ...

  9. Hibernate反向工程生成DAO

    通过Hibernate反向工程生成个DAO: package dao; import java.util.List; import org.hibernate.LockMode; import org ...

  10. 自身对highcharts理解

    最近公司要求做一些图标,动态的添加数据,展示在手机上,以前对Echarts,d3,highcharts只是听说,也没实际去花一定的时间玩玩,也是自以为是,不就看看api的事,结果呢?-----被他们给 ...