请高手帮我分析一下这个pb源码!我看不大明白,本人才学水平有限请指点!!!
string ls_user
string ls_regcode
string ls_serialno //变量定义
ls_user = trim(parent.sle_username.text) //用户名赋给ls_user变量
if ls_user = "" then
messagebox("错误:","用户名尚未输入,不能注册。请正确输入注册用户名。",stopsign!)
parent.sle_username.setfocus() //当ls_user变量值为空时出现不能注册对话框
returnls_user
end if
ls_serialno = trim(parent.sle_serialno.text) //赋值?sle_serialno.text是什么?
ls_regcode = trim(parent.sle_regcode.text) //赋值?sle_regcode.text是什么?
if f_isreged2(ls_serialno,ls_user,ls_regcode) then //f_isreged2()函数怎么现解?
if f_writereginfo(gs_regfile,ls_serialno,ls_user,ls_regcode) then //f_writereginfo()函数怎么理解?
messagebox("注册成功:","谢谢您的支持!~n~n" + "您已经成功注册了该软件,您将可以得到我们更多的技术支持和版本升级服务。",information!)
else //可以理解为什么?就注册成功了。
messagebox("资料保存失败:","对不起,数据保存失败,请重试。如果问题依然存在,请与软件供应商联系。",information!)
return
end if
else
messagebox("必须提供正确注册码","注册码无效,请检查所有字符是否都已正确输入!",stopsign!)
parent.sle_regcode.setfocus()
return
end if
gb_isreged = true
gs_username = ls_user
parent.ib_allowcontinue = true
close(parent)
f_isreged2()函数原型:
f_isreged2(string as_serialno,string as_username,string as_regcode)returns boolean
string ls_curcode
string ls_oldcode
string ls_regcode
integer li_namelen
integer li_codelen
integer li_startpos
if as_serialno = "" or as_username = "" or as_regcode = "" then //好像是三个(机器码、用户名、注册码(那个是注册码那个是机器码))都为空时结束注册过程。
return false
end if
li_codelen = len(as_regcode)
if li_codelen < 5 then //如果as_regcode是注册码那么当注册码小于5个字符时结束过程对不对?
return false
end if
ls_oldcode = gpf_functions.uf_str_decrypt2(left(as_regcode,li_codelen - 1)) //gpf_functions.uf_str_decrypt2()函数怎么理解?
ls_curcode = gpf_functions.uf_app_genregcode4(as_serialno,as_username,as_regcode) //gpf_functions.uf_app_genregcode4()函数怎么理解?
return upper(ls_curcode) = upper(ls_oldcode)
f_writereginfo()函数原型:
f_writereginfo(string as_regfile,string as_serialno,string as_username,string as_regkeyno)returns boolean
string ls_tempini = "C:\_wsk.tmp" //C:\_wsk.tmp这个文件是什么找不到是不是还未写入呀?
string ls_reginfo
string ls_comment = ";;这是重要文件,请不要做任何修改!
;;----------------------------------------------------------------------
;;版权所有: 2002-2004, 台州文达电脑技术发展有限公司,保留该软件所有权利!
;; 新技术 新服务 新技术 新服务 新技术 新服务 新技术 新服务
;;WonderTECH .. WonderTECH .. WonderTECH .. WonderTECH .. WonderTECH ..
;;WonderTECH .. WonderTECH .. WonderTECH .. WonderTECH .. WonderTECH ..
;;WonderSoft .. WonderSoft .. WonderSoft .. WonderSoft .. WonderSoft ..
;;WonderSoft .. WonderSoft .. WonderSoft .. WonderSoft .. WonderSoft ..
" //这个又是什么?具体执行那一句?
integer li_file
boolean lb_rtn = false
if fileexists(ls_tempini) then //这里是如果ls_tempini文件存在则执行filedelete(ls_tempini)如不存在则结束?
filedelete(ls_tempini)
end if
//从这里往下更不明白
ls_reginfo = ls_comment + "[Reginfo]~n" + "SerialNO=" + as_serialno + "~n" + "UserName=" + as_username + "~n" + "RegKeyNO=" + as_regkeyno + "~n"
li_file = fileopen(ls_tempini,streammode!,write!)
filewrite(li_file,ls_reginfo)
fileclose(li_file)
if fileexists(as_regkeyfile) then
filedelete(as_regkeyfile)
end if
lb_rtn = gpf_functions.uf_file_compress(ls_tempini,as_regkeyfile)
filedelete(ls_tempini)
return lb_rtn
高手进来看过后请留言.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)