//先判断软件是否注册
integer li_reg,li_return1,li_return2
string ls_reg,ls_RegistMask,ls_days,ls_officialflag
date ld_regdate
li_return2 = RegistryGet ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion","ProductDate" , ls_officialflag)
if li_return2 <> 1 then
messagebox("","您没有注册本产品,因此您只有30天的试用期!")
RegistrySet("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion","ProductDate",RegString!,f_encode(string(today(),'yyyy-mm-dd')))//对日期加密
tab_backup.tabpage_regist.st_summary.visible=false
else
if ls_officialflag = f_encode("%^$$%$%^^%$$^&**") then //正版标志
messagebox("","欢迎使用ORACLE数据库自动备份系统!!")
tab_backup.tabpage_regist.sle_registid.visible = false
tab_backup.tabpage_regist.st_id.visible = false
tab_backup.tabpage_regist.sle_reguser.visible = false
tab_backup.tabpage_regist.cb_1.visible = false
tab_backup.tabpage_regist.cb_protocol.visible = false
tab_backup.tabpage_regist.mle_protocol.visible = false
tab_backup.tabpage_regist.st_user.visible = false
tab_backup.tabpage_regist.st_regmask.visible = false
tab_backup.tabpage_regist.sle_registmask.visible = false
//显示注册信息
RegistryGet ("HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Control/ComputerName/ComputerName","ComputerName" , ls_ComputerName)
tab_backup.tabpage_regist.st_summary.visible = true
tab_backup.tabpage_regist.st_username.TEXT=ls_ComputerName
tab_backup.tabpage_regist.st_username.visible = true
else
tab_backup.tabpage_regist.st_summary.visible = false
// tab_backup.tabpage_regist.cb_protocol.visible = true
ls_days = string(daysafter(today(),date(string(f_decode(ls_officialflag)))))
messagebox("系统提示","您使用的是试用版,还有"+string(30 + integer(ls_days))+' '+"天到期!")
if 30 + integer(ls_days) <= 0 then
messagebox("系统提示","您使用的是试用版,并且已经到期!")
halt;
end if
end if
end if
//取硬盘序列号加密得出注册码
//string ls_diskmask
String ls_Rootpath, ls_volumnename
ls_Rootpath = "C:"
// 指定要得到序列号的硬盘,
// 一般情况都是C盘,除非你能保证用户存在其它逻辑盘或物理盘
ls_volumnename = Space(256)
// 分配足够的空间,下同
Ulong lul_VolumeNameSize
lul_VolumeNameSize = 256
Ulong lul_VolumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags
lul_MaximumComponentLength = 256
String ls_FileSystemNameBuffer
ls_FileSystemNameBuffer = space(256)
Ulong lul_FileSystemNameSize
lul_FileSystemNameSize = 256
beep(1)
boolean lb_rtn
lb_rtn = False
lb_rtn = GetVolumeInformationA(ls_Rootpath,ls_volumnename, lul_VolumeNameSize,lul_VolumeSerialNumber,lul_MaximumComponentLength,lul_FileSystemFlags,ls_FileSystemNameBuffer,lul_FileSystemNameSize)
if lb_rtn = false then
ls_Rootpath = "D:"
lb_rtn = False
lb_rtn = GetVolumeInformationA(ls_Rootpath,ls_volumnename, lul_VolumeNameSize,lul_VolumeSerialNumber,lul_MaximumComponentLength,lul_FileSystemFlags,ls_FileSystemNameBuffer,lul_FileSystemNameSize)
end if
if lb_rtn = true then
ls_diskmask = String(lul_VolumeSerialNumber)
tab_backup.tabpage_regist.sle_diskid.text = ls_diskmask
//因串口硬盘(9位)和IDE及SCSI硬盘的ID号(10位)不一样
if len(ls_diskmask) = 10 then
ls_diskmask = $%$^^$$^$###$%%%%$###(加密算法不便透露)
end if
if len(ls_diskmask) = 9 then
ls_diskmask = $%$^^$$^$###$%%%%$###(加密算法不便透露)
end if
tab_backup.tabpage_regist.sle_registid.text = ls_diskmask
end if
if lb_rtn = false then
MessageBox("提示","取注册码函数调用失败!,程序可能对您所使用的硬件系统不支持!")
halt;
end if