import win; //必须首先导入win窗口支持库
import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; min=1;bottom=249;max=1;text="NOD32升级帐号获取 ";right=349 )
winform.add(
button={ bottom=230;text="获取";left=33;right=156;top=201;font=LOGFONT( name="宋体";h=-12 );z=0;cls="button" };
edit={ bottom=187;right=340;left=9;multiline=1;top=20;font=LOGFONT( name="宋体";h=-12 );z=1;text="";edge=1;cls="edit" }
)
/*}}*/
//变量名应清晰准确的表达函数的意图
//AAuto变量首字母小写,从第二个单词开始首字符大写,外部对象(API、COM)首字母大写
getNod32 = function() begin //函数也可以使用可折叠语句块
import inet.http;
import string.ex;
var http = inet.http()
var ti = time.now()
ti.format="%Y%m%d-upgrade/";
//转换成当前日期并下载网页
var html=http.down( tostring(ti) )
http.close();
var str2=""
if(html){
html = string.fromto(html);
for m,m2 in string.gmatch(html ,"(%:\<)%b码(%:\<)") {
var str="id"+string.trimright(m,'<')+" 密码"+string.trimright( m2,'<')
//取出的字符串再去除尾部
str2 =str2+'\r\n' + str
}
str2=string.ex.distinct(str2,'\r\n')//去除在回复中的重复项
thread.set("NODID", str2)
//如果要加入列表框,可以改成数组的存取,再加入列表框
}
return 123;
end;
winform.button.oncommand = function(id,event){
//禁用按钮,避免重入
winform.button.text = "请稍候"
winform.button.disabled = true;
winform.edit.text = "";
//创建并启动后台线程
h = thread.create(getNod32)
while( ! thread.get("NODID") ){
//如果没有查询到结果,执行delay以响应消息
win.delay(200)
winform.edit.text ++= "."
}
winform.edit.text = thread.get("NODID")
thread.set("NODID",null) //清空线程变量
winform.button.text ="获取"
winform.button.disabled = false;
}//endproc
winform.show(true)
win.loopMessage();
阅读(1317) | 评论(0) | 转发(1) |