zoukankan      html  css  js  c++  java
  • delphi实现discuz论坛自动签到功能

    愚人节那天学校 校内论坛搞了个论坛签到活动,在4月3号和4号24点整,签到前3名同学送校园网上网卡密一个月(35元)。手工去抢很难抢到,一旦提早提交又要重新选择“心情”或打字,可能这个时候就被别人抢了,而且服务器的时间并不一定和百度上看到的时间一致(通过查看该服务器上的其他站点的时间和百度上看到的并不一致),虽然可以算出差值,但还是有风险,所以手工是很困难的。

    思路:本来是想使用IdHTTP模拟提交页面,无奈cookies没模拟成功,那就使用最笨的方法,模拟鼠标指针点击。获取签到页面提交的参数,自己写个提交的页面 sign.html,delphi中的WebBrowser打开sign.html,在23点58分时打开程序,Timer每隔500ms去点击提交按钮,然后WebBrowser重新打开sign.html,一直循环到n次,设置timer的enabled为false ,循环结束。

    步骤:

    1. 论坛的签到插件是 Sign EverydayVer 7.0.1 Build N0922

    2.查看签到页面的源代码,提取出有效的提交参数,并伪造表单,自己重新写个提交页面:

    <form name="qiandao" method="post" action="http://XXXX.edu.cn/plugin.php?identifier=sign&amp;module=sign&amp;operation=qiandao">
    <input type="hidden" name="action" value="qiandao" />
    <input type="radio" name="qdxq" value="kx" checked="checked" />
    <input type="radio" name="qdmode" value="1" checked="checked" />
    <input type="text" name="todaysay" id="todaysay" value="Hello World!" />
    <input type="submit" name="card" value="#提交#" style="height:200px; 500px;" / >  
    </form>

    保存成 sign.html。
     
    3.delphi 主要实现代码:

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      //打开sign.html,和程序放在同一目录下
      WebBrowser1.Navigate('file://' + ExtractFilePath(Application.Exename) + 'sign.html');
    end;
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      k:=k+1;   //k为当前循环的次数
      label1.Caption:=floattostr(max-k); //max为循环的总次数
      if(k>max) then
        begin
          timer1.Enabled:=false;
        end;
      setCursorPos(400,400); //设置鼠标指针位置,定位按钮位置
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //模拟按下
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);  //模拟放开
      //sleep(100);  
      //一提交后 WebBrowser1马上打开sign.html ,有人说这样的话提交失败概率很大,但是我两次都抢到了。
      WebBrowser1.Navigate('file://' + ExtractFilePath(Application.Exename) + 'sign.html');
    end;
     
    4.等到23点58分左右时打开程序,让它自动去提交。 
     
    过会打开论坛发现出现了2个签到帖,而且都是我发的。嗯,卡密到手。

    第2天签到也一样,抢的人多不仅有多个签到帖,而且在一个签到帖里我发了2个帖。坛友意见很大,所以第2次签到的卡密没了。

    界面:

    30726

    版主发给我的信息:

    QQ截图20120519232217_副本版主以为我故意发了个伪帖,其实是程序提交太快造成的,可爱的版主我错了,哈哈。

    OK,卡密到手,免费上一个月的校园网。

  • 相关阅读:
    CRF++条件随机场
    list 函数
    转:Java Map 排序定义
    C#统计文本单词个数2
    转:求多边形的面积 算法几何
    C#统计单词词频
    C#动态数组ArrayList
    转:java写一个方法实现统计一条英文语句忠每个单词的个数
    C#统计文本单词的个数
    统计文本单词个数,并个数大小按序排列 C#
  • 原文地址:https://www.cnblogs.com/fjut/p/2509307.html
Copyright © 2011-2022 走看看