用模拟精灵写的自动投票系统
<?xml version="1.0" encoding="gb2312" ?>
<ApeML LID="CHS" MD="0" 抓屏模式="0" 名称="icctv-vote" 作者="xing006" 信息窗口="false" 速度="15" 循环次数="20" 自定义属性="ConnectionName = adsl,ConnectionPassword = m7x9b6r4,ConnectionUser = 100001230164">
<!--创建时间:2005年11月30日-05:07-->
<脚本区块 语言="LAScript" 名称="init" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
_set = ape:loadSetting(); --读取自定义属性
stopPlay = function() --这个函数回放停止时被调用.
ape:saveSetting(_set); --保存自定义属性
collectgarbage();--清理内存
end;
import("net");
import("clean");
Forms=net.System.Windows.Forms
Drawing=net.System.Drawing
Form=Forms.Form
TextBox=Forms.TextBox
Label=Forms.Label
Button=Forms.Button
Point=Drawing.Point
Size=Drawing.Size
FormStartPosition=Forms.FormStartPosition
wb = web.new();
identify= function()
clean.IE(false,true);
local strUrl="http://"
wb:setSilent(true,true);
wb:go(strUrl);
wb:show(false);
delay(200);
for i=1,100,1 do
if(wb:getEle("CheckCode_input"))then
local img=image.new();
img:getURL("http://","*.gif");
if(img:ok())then
img:corp(5,4,41,14);--对图进行修剪;
local img2,img3,img4,img5=img:split(1,4);
if(img2)then
img2:median(2);--是否加中值滤波,及中值滤波的值,要根据实际情况进行调整。;
img3:median(2);
img4:median(2);
img5:median(2);
end;
imgBinKey=bytestoImg();--得到包含样本图片的表
local str="";--识别出来的文字
str=test(imgBinKey,img2);
str=str..test(imgBinKey,img3);
str=str..test(imgBinKey,img4);
str=str..test(imgBinKey,img5);
local ele=wb:getEle("CheckCode_input")
ele:setAttribute("value",str);
ele:submit();--提交表单
image.del(img);
image.del(img2);
image.del(img3);
image.del(img4);
image.del(img5);
element.del(ele);
break;
end;
end;
if(i==100)then
return false;
end;
delay(100)
end;
return true;
end;
function isConnect(url)
local str = web.getURL(url);
if (str=="")then
return false;
end;
if( string.find( str, "找不到服务器" ) )then
return false;
end;
if( string.find( str , "没有可以显示的页面" ) )then
return false;
end;
return true;
end;
function isConnectX()
NETWORK_ALIVE_LAN = 0x00000001 --是否有可用网卡
NETWORK_ALIVE_WAN = 0x00000002 -- 是否有可用远程连接
NETWORK_ALIVE_AOL = 0x00000004 -- NETWORK_ALIVE_AOL(仅对98/95有效判断是否联上美国的网络)
--IsNetworkAlive的参数是传址的,所以需要用P来标记参数类型,然后在返回值中添加一个返回值flag
IsNetworkAlive = dll.open("sensapi.dll", "IsNetworkAlive", "I(P)","stdcall")
ok,flag = IsNetworkAlive(NETWORK_ALIVE_WAN); --ok对应上面的默认返回值I,flag对应上面的输出参数返回值P
-- 注意上面的参数 ,应在网络连接以后延迟一下再检测是否有活动的连接
if( ok == 0 )then
return false;
else
if( (flag & NETWORK_ALIVE_WAN) == NETWORK_ALIVE_WAN)then
return true;
else
return false;
end;
end;
end;
bytestoImg= function()
local codeKey=ape:loadTable("验证码样本");--从数据岛读取表
local imgBinKey={};--这个表是放真正的图像的
toImage= function(k,v)
local img9=image.new();
img9:setBytes(string.decode(v,""),"*.gif");
imgBinKey[k]=img9;
end;
table.foreach(codeKey,toImage)
return imgBinKey;--调用函数,将返回包含样本图片的表
end;
test= function(imgBinKey,imgX)
local limit=9999;
local chr="";
testImg= function(k,v)
local n=imgX:testXX(imgBinKey[k]);
if (n<limit) then
limit=n;
chr=k.."";
end;
end;
table.foreach(imgBinKey,testImg);
return chr
end;
function dail(connN,connU,connP)
collectgarbage();
win.exec(win.getSysDir().."//rasdial.exe"," "..connName.." /DISCONNECT",win.getSysDir(),0);
delay(2*1000); --延时2秒
win.exec(win.getSysDir().."//rasdial.exe"," "..connName.." "..connUser.." "..connPassword,win.getSysDir(),0);
delay(5*1000); --延时2秒
end;
function btnVote_click(sender,args)
connName = txtConnectionName.Text;
connUser = txtConnectionUser.Text;
connPassword = txtConnectionPassword.Text;
ape:setRunNumber(txtVoteCount.Text);
local i = 0;
local j= ape:getRunNumber();
while(i<j)
do
if(math.mod(i,10)==0) then
dail(connName,connUser,connPassword);
if(isConnectX())then
if(identify())then
i=i+1
lblValue.Text = i.."/"..j
delay(1000);
end;
end;
else
if(not isConnectX())then
dail(connName,connUser,connPassword);
end;
if(identify())then
i = i + 1;
lblValue.Text = i.."/"..j;
delay(1000);
end;
end;
end;
end;
form = Form();
txtVoteCount = TextBox();
txtConnectionName = TextBox();
txtConnectionUser = TextBox();
txtConnectionPassword = TextBox();
lblVoteCount = Label();
lblConnectionName = Label();
lblConnectionUser = Label();
lblConnectionPassword = Label();
lblPercent = Label();
lblValue = Label();
btnVote = Button();
form:SuspendLayout();
lblVoteCount.Location = Point(10, 10);
lblVoteCount.Name = "lblVoteCount";
lblVoteCount.Size = Size(40, 10);
lblVoteCount.TabIndex = 0;
lblVoteCount.Text = "票数:";
txtVoteCount.Location = Point(80, 10);
txtVoteCount.Name = "txtVoteCount";
txtVoteCount.Size = Size(60, 60);
txtVoteCount.TabIndex = 1;
txtVoteCount.Text ="20000"
lblConnectionName.Location = Point(10, 40);
lblConnectionName.Name = "lblConnectionName";
lblConnectionName.Size = Size(70, 10);
lblConnectionName.TabIndex = 2;
lblConnectionName.Text = "拔号连接名:";
txtConnectionName.Location = Point(80, 40);
txtConnectionName.Name = "txtConnectionName";
txtConnectionName.Size = Size(60, 60);
txtConnectionName.TabIndex = 3;
txtConnectionName.Text ="adsl"
lblConnectionUser.Location = Point(10, 70);
lblConnectionUser.Name = "lblConnectionUser";
lblConnectionUser.Size = Size(70, 10);
lblConnectionUser.TabIndex = 4;
lblConnectionUser.Text = "拔号用户名:";
txtConnectionUser.Location = Point(80, 70);
txtConnectionUser.Name = "txtConnectionUser";
txtConnectionUser.Size = Size(60, 60);
txtConnectionUser.TabIndex = 5;
txtConnectionUser.Text ="100001230164"
lblConnectionPassword.Location = Point(10, 100);
lblConnectionPassword.Name = "lblConnectionPassword";
lblConnectionPassword.Size = Size(70, 10);
lblConnectionPassword.TabIndex = 6;
lblConnectionPassword.Text = "拔号密码:";
txtConnectionPassword.Location = Point(80, 100);
txtConnectionPassword.Name = "txtConnectionPassword";
txtConnectionPassword.Size = Size(60, 60);
txtConnectionPassword.TabIndex = 7;
txtConnectionPassword.Text ="m7x9b6r4";
lblPercent.Location = Point(10, 130);
lblPercent.Name = "lblPercent";
lblPercent.Size = Size(70, 10);
lblPercent.TabIndex = 8;
lblPercent.Text = "进度:";
lblValue.Location = Point(80, 130);
lblValue.Name = "lblValue";
lblValue.Size = Size(70, 10);
lblValue.TabIndex = 9;
--lblValue.Text = "";
btnVote.Location = Point(70, 170);
btnVote.Name = "btnVote";
btnVote.TabIndex = 10;
btnVote.Text = "开始投票";
btnVote.Click:Add(btnVote_click);
form.AutoScaleBaseSize = Size(5, 13);
form.ClientSize = Size(200, 200);
form.Controls:Add(lblVoteCount);
form.Controls:Add(txtVoteCount);
form.Controls:Add(lblConnectionName);
form.Controls:Add(txtConnectionName);
form.Controls:Add(lblConnectionUser);
form.Controls:Add(txtConnectionUser);
form.Controls:Add(lblConnectionPassword);
form.Controls:Add(txtConnectionPassword);
form.Controls:Add(lblPercent);
form.Controls:Add(lblValue);
form.Controls:Add(btnVote);
form.Name = "MainForm"
form.Text = "ICCTV Vote"
form.StartPosition = FormStartPosition.CenterScreen
form.MaximizeBox=false;
form.MinimizeBox=true;
form:ResumeLayout(false);
form:ShowDialog();]]>
</脚本区块>
<数据区块>
<验证码样本>
<item key="0" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQWEMhApaX4Bj1tB5sXhtdEViZImqjnRgA7" ktype="string" vtype="string" />
<item key="1" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQTEMgQpAW0Xpz31BsYehOJkZ1pRQA7" ktype="string" vtype="string" />
<item key="2" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQXEIAQZrXXTsl3l9SnfWFHZVyZnuTpBhEAOw==" ktype="string" vtype="string" />
<item key="3" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQUEIRJgb124qt3x9WWBWJWdihZXhEAOw==" ktype="string" vtype="string" />
<item key="4" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQWEEgZwpzV3qyp7hWGfSFQZpeYUmsaAQA7" ktype="string" vtype="string" />
<item key="5" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQVEIQAqpX30lxn35zHYeMmSqB3jkAEADs=" ktype="string" vtype="string" />
<item key="6" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQWEIAQZpVUTn01915mcZ3YjWiaiaAXAQA7" ktype="string" vtype="string" />
<item key="7" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQUMIA5g6T4YmA311S3iRn4mZ93ehEAOw==" ktype="string" vtype="string" />
<item key="8" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQVEIAQZpVUWnw391/2jR02gpmorVIEADs=" ktype="string" vtype="string" />
<item key="9" value="R0lGODlhCQAKAOMAAP///wAAAMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAP8ALAAAAAAJAAoAAAQWEIAQZpVUWnwx19m3aWRHTiDYUezpRgA7" ktype="string" vtype="string" />
</验证码样本>
</数据区块>
</ApeML>
注意:需要dotnet1.1支持.
用模拟精灵写的自动投票系统相关推荐
- 自动投票系统【二】模拟登录提交
当然现在就要模拟的登录,跟目标主机的交互,就要进行欺骗.咳,先来baidu,google一下.百度自动投票.资料还不少,还有现成的软件.还有专门做这样的公司.真是 .算了不评论了.我们来学习技术.下面 ...
- 如何写一个自动投票工具
当然,自动投票这个违反了正常竞争,不提倡,这里只就技术问题做个探讨. 投票服务器一般的验证条件: [list] [*]IP地址不能重复 [*]Cookie验证 [*]验证码验证 [/list] 一个自 ...
- 模拟实现简单的自动售货系统
题目描述 1 总体说明 考生需要模拟实现一个简单的自动售货系统,实现投币.购买商品.退币.查询库存商品及存钱盒信息的功能. 系统初始化时自动售货机中商品为6种商品,商品的单价参见1.1规格说明,存钱盒 ...
- 自动投票系统【四】C# 清除Cookies
现在都已经准备好了就欠东风了cookies和更换ip. 在越来越多的网站使用了Cookie技术,它给我们带来方便的同时,也给我们带来了一点小麻烦. 比如网站的自动登录. 在网上没有找到合适的代码,于是 ...
- 自己写的微信投票系统的小功能
一. 微信投票活动功能介绍 1. 活动添加.修改.删除(包含:活动名称.关键词.模板选择.背景音乐.广告图片.微信分享描述.微信分享外链图标.微信引导关注提示语.投票引导关注提示语.每个微信用户可投票 ...
- 记一次简单的自动投票操作
朋友在社区居委会上班,偶尔会有一些投票活动,每个人都有任务,得投到多少票才行,有点烦人又浪费时间,所以就想写一个自动投票的,这次是这个网址,规则: 选择其中一个视频,点击下方的 "投票&qu ...
- java 模拟投票代码_求投票系统(Java源代码)
求投票系统(Java源代码) 关注:175 答案:3 mip版 解决时间 2021-02-02 21:06 提问者 侑點尐悲伤 2021-02-02 16:54 设计一个投票系统来进行调查.评选或 ...
- 模拟投票系统--c语言版
模拟投票系统–c语言版 题目及要求 请设计完成一个投票系统,实现三个角色: 选民.备选对象.管理员: 实现参加票选.管理投票过程.结果查询与公布.加入投票等.代码要能提供以下几个基本功能. (1)注册 ...
- 教大家用按键精灵写一个快手自动抢红包脚本
教大家用按键精灵写一个快手自动抢红包脚本 先设计好界面,为了节省大家的时间,界面方面我们早就设计好了,请看下面 设计好界面后就进入写代码的步骤,这个其实你可以先录制一遍,然后把录制的代码进行二次修改, ...
最新文章
- golang 日志输出
- iftop 监控linux服务器网卡流量
- 基于linux-2.6.35的class_create(),device_create解析
- SAP gateway系统和后台系统的OData双重cache机制
- vsftp服务器搭建
- jpa 托管_java – jpa非托管实体
- SharePoint Server 2016 部署安装(七)—— 配置SharePoint Server
- 201521123054 《Java程序设计》 第2周学习总结
- 理解 Delphi 的类(三) - 初识类的属性
- ubuntuQQ怎末安装
- 422串口线互连的接法
- ps图标长投影如何做?
- 北京大学 引进一位人工智能世界级专家!
- Python-字符串
- android 九宫格封装,Android 实现九宫格、点击图片放大全屏浏览等
- 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建
- 软件设计师知识点(七):程序设计语言与语言处理程序、法律法规知识
- 电子商务格局下的营销未来
- SCAU 2018 初出茅庐 题解
- CSS 学成网(二)
热门文章
- 新概念二册 Lesson 28 No parking禁止停车 ( 定语从句)
- 我现在正在使用blender,我从HDRI网站上面下载的.exr格式的世界贴图,但是使用的时候,非常的暗,和网站上面的效果图不一样,效果图非常明亮,我该怎么做才能变成那样...
- ios ScrollerView之图片轮播器
- 动物代谢成像(SPECT/PET)放射性同位素标记实验/18f/99mtc/125l/68Ga放射性标记
- 全网最全抓包攻略丨傻瓜式Fiddler教程大全丨手把手从安装到抓包
- MySQL | 存储
- paddlepaddle初步印象
- vue开发饿了吗外卖app④——使用vue-resource获取数据
- 【项目一】 认识linux操作系统
- Qt Debug 各种错误解决方法