上次发的不完整。。这次的可以直接拿去用。。分分钟显示效果。。
第一个是注册机源码:
import win.ui;
import win.clip;
import inet.mac;
import sys.hd;
import sys.cpu;
import console;
/*DSG{{*/
var winform = ..win.form(cls="TY_FORM";text="DD时时彩计划注册机";right=511;bottom=215;border="thin";max=false;topmost=1)
winform.add(
Btn_CopyMachineCode={cls="button";text="粘贴机器码";left=376;top=16;right=496;bottom=40;z=5};
Btn_CreateRegCode={cls="button";text="生成注册码(&C)";left=376;top=104;right=496;bottom=168;z=6};
DP_Exp={cls="datetimepick";left=80;top=48;right=176;bottom=72;edge=1;z=8};
radiobutton={cls="radiobutton";text="一个月";left=80;top=80;right=144;bottom=104;checked=1;z=9};
radiobutton2={cls="radiobutton";text="二个月";left=144;top=80;right=208;bottom=104;z=10};
radiobutton3={cls="radiobutton";text="三个月";left=208;top=80;right=272;bottom=104;z=11};
radiobutton4={cls="radiobutton";text="半年";left=272;top=80;right=320;bottom=104;z=12};
radiobutton5={cls="radiobutton";text="一年";left=328;top=80;right=376;bottom=104;z=13};
radiobutton6={cls="radiobutton";text="终身";left=384;top=80;right=432;bottom=104;z=14};
static={cls="static";text="机器码:";left=28;top=21;right=84;bottom=45;transparent=1;z=1};
static2={cls="static";text="注册码:";left=28;top=109;right=84;bottom=133;transparent=1;z=2};
static3={cls="static";text="过期时间:";left=16;top=52;right=80;bottom=76;transparent=1;z=7};
static4={cls="static";text="快捷选择:";left=16;top=81;right=80;bottom=105;transparent=1;z=15};
static5={cls="static";text="默认是一个月后过期,请看清楚时间";left=184;top=53;right=448;bottom=77;transparent=1;z=16};
static6={cls="static";text="解码:";left=40;top=180;right=80;bottom=204;transparent=1;z=17};
TB_DeRegCode={cls="edit";left=80;top=176;right=496;bottom=200;edge=1;multiline=1;z=18};
TB_MachineCode={cls="edit";left=80;top=16;right=368;bottom=40;edge=1;z=3};
TB_RegCode={cls="edit";left=80;top=104;right=368;bottom=168;autohscroll=false;edge=1;multiline=1;vscroll=1;z=4}
)
/*}}*/
//**************** 普通变量 ******************************************
winform.DP_Exp.setFormat("yyyy'-'MM'-'dd")
//**************** 用户标识 ******************************************
var currentUser = "123456112";
//**************** 函数 ***********************************************
math.randomize();
function encryptDate( dateTick, currentUser ){
var cryptNum = tonumber(currentUser) * tonumber(string.left(currentUser,1));
//取加密日期
var rstr=string.split("ABCDEFGHIJKLMNOPQRSTUVWXYZ","");
var tick = tostring( dateTick + cryptNum);
var tb = {};
for(i=1;#tick;1){
table.push( tb, rstr[math.random(1, #rstr)] ++ tick[[i]] );
}
var tickStr = string.reverse(string.join(tb));
return tickStr;
}
function decryptDate( cryptStr, currentUser ){
var cryptNum = tonumber(currentUser) * tonumber(string.left(currentUser,1));
num = string.reverse( string.replace(cryptStr,"[A-Z]+","") );
num = tonumber( num ) - cryptNum ;
return num, time(num);
}
//**********************************************************************
winform.Btn_CreateRegCode.oncommand = function(id,event){
var s = string.split( string.trim( winform.TB_MachineCode.text ), "<->",3 );
var r = {};
import crypt;
for(i=1;#s;1){
table.push( r, math.abs( string.crc32( s[i] ++ currentUser) ) );
}
var dt = encryptDate( tonumber(winform.DP_Exp.time),currentUser );
table.push( r, math.abs( string.crc32( dt ++ currentUser) ) );
table.push( r, dt );
winform.TB_RegCode.text = string.join(r,"-");
var a,b = decryptDate( encryptDate( tonumber(winform.DP_Exp.time),currentUser ) ,currentUser );
winform.TB_DeRegCode.text = b
win.clip.write( winform.TB_RegCode.text )
win.msgbox("注册码生成,并已复制到剪贴板上 !","提示",,winform.hwnd);
}
winform.Btn_CopyMachineCode.oncommand = function(id,event){
//winform.msgbox( winform.Btn_CopyMachineCode.text );
winform.TB_MachineCode.text = win.clip.read();
}
//设置过期时间---快捷选择
checkDateLong = function( n=1 ){
winform.DP_Exp.time = time.now().addmonth( n );
}
checkDateLong( 1 );
winform.radiobutton6.oncommand = function(id,event){
checkDateLong( 240 );
}
winform.radiobutton5.oncommand = function(id,event){
checkDateLong( 12 );
}
winform.radiobutton4.oncommand = function(id,event){
checkDateLong( 6 );
}
winform.radiobutton3.oncommand = function(id,event){
checkDateLong( 3 );
}
winform.radiobutton2.oncommand = function(id,event){
checkDateLong( 2 );
}
winform.radiobutton.oncommand = function(id,event){
checkDateLong( 1 );
}
winform.show()
win.loopMessage();
第二个是软件注册小窗。
//RUNAS//
import win.ui;
import inet.mac;
import sys.hd;
import sys.cpu;
import console;
/*DSG{{*/
var winform = ..win.form(cls="TY_FORM";text="注册";right=487;bottom=127;border="thin";max=false)
winform.add(
Btn_CopyMachineCode={cls="button";text="复制机器码";left=376;top=16;right=472;bottom=40;z=5};
Btn_RegSoft={cls="button";text="注册软件(&R)";left=376;top=48;right=472;bottom=112;z=6};
static={cls="static";text="机器码:";left=16;top=21;right=72;bottom=45;transparent=1;z=1};
static2={cls="static";text="注册码:";left=16;top=53;right=72;bottom=77;transparent=1;z=2};
TB_MachineCode={cls="edit";left=72;top=16;right=368;bottom=40;edge=1;readonly=1;z=3};
TB_RegCode={cls="edit";left=72;top=48;right=368;bottom=112;edge=1;multiline=1;z=4}
)
/*}}*/
//**************** 正常变量 ******************************************
//验证是否注册
var regCode = string.load("\info.dat")
winform.TB_RegCode.text = regCode;
var regFlag=false;
//**************** 用户标识 ******************************************
var currentUser = "123456112";
//**************** 函数 ***********************************************
math.randomize();
function encryptDate( dateTick, currentUser ){
var cryptNum = tonumber(currentUser) * tonumber(string.left(currentUser,1));
//取加密日期
var rstr=string.split("ABCDEFGHIJKLMNOPQRSTUVWXYZ","");
var tick = tostring( dateTick + cryptNum);
var tb = {};
for(i=1;#tick;1){
table.push( tb, rstr[math.random(1, #rstr)] ++ tick[[i]] );
}
var tickStr = string.reverse(string.join(tb));
return tickStr;
}
function decryptDate( cryptStr, currentUser ){
//try{
if( cryptStr == null ) cryptStr="";
var cryptNum = tonumber(currentUser) * tonumber(string.left(currentUser,1));
num = string.reverse( string.replace(cryptStr,"[A-Z]+","") );
num = tonumber( num ) - cryptNum ;
return num, time(num);
//}
//return 0,time.now().addday(-1);
}
//********************************************************************
var cpuInfo = sys.cpu.getInfo(1,{ INT eax;INT ebx;INT ecx;INT edx } )
var cpu = string.format("%08X%08X",cpuInfo.edx,cpuInfo.eax )
var hd = string.trim( sys.hd.getInfo().sSerialNumber );
var mac = string.upper( string.replace( inet.mac.getAddress("www.baidu.com"),"@@-","" ) );
winform.TB_MachineCode.text = cpu ++ "-" ++ hd ++ "-" ++ mac ;
function checkReg( alert=false ){
//取本机硬件信息
var mc = string.split(winform.TB_RegCode.text,"<->");
var cpu2 = math.abs( string.crc32( cpu ++ currentUser) )
var hd2 = math.abs( string.crc32( hd ++ currentUser) )
var mac2 = math.abs( string.crc32( mac ++ currentUser) )
//console.log( mc[1],mc[2],mc[3] )
//console.log( cpu2,hd2,mac2 )
//先验证硬件信息是否对,如果不对,直接返回失败
if( cpu2==mc[1] || hd2==mc[2] || mac2==mc[3] ){
//console.log("硬件对了");
//硬件信息正确,检测时间是否到期
if( string.trim(winform.TB_RegCode.text)=="" ){
win.msgboxErr("软件未注册!","提示",,winform.hwnd);
regFlag=false;
return regFlag;
}
var rc = string.split( winform.TB_RegCode.text,"<->");
//长度不对,失败
if( #rc<5 )return false;
//加密时间戳改动了,失败
if( math.abs( string.crc32( rc[5] ++ currentUser) ) != rc[4] )return false;
var myTick,myTime = decryptDate( rc[5], currentUser );
//console.log( rc[5],myTick ,tonumber( time.now() ), myTime );
if( myTick <= tonumber( time.now() ) ){
if( alert ){
win.msgboxErr("软件注册码已过期,请联系管理员!","提示",,winform.hwnd);
}
regFlag=false;
}else{
string.save("\info.dat",string.trim(winform.TB_RegCode.text) );
regFlag=true;
if( alert ){
win.msgbox("注册成功!软件使用日期截止到" ++ tostring(myTime) )
winform.endModal( true );
winform.close();
}
}
return regFlag;
}else {
//硬件不对,滚犊子
//console.log("硬件不对啊");
if( alert ){
win.msgboxErr("注册失败!","提示",,winform.hwnd);
}
return false;
}
}
winform.Btn_CopyMachineCode.oncommand = function(id,event){
//winform.msgbox( winform.Btn_CopyMachineCode.text );
import win.clip;
win.clip.write( winform.TB_MachineCode.text );
win.msgbox("机器码已复制到剪贴板上!");
}
winform.Btn_RegSoft.oncommand = function(id,event){
checkReg( true );
}
winform.onClose = function(hwnd,message,wParam,lParam){
winform.endModal( regFlag );
}
regFlag = checkReg( false );
//winform.show()
//win.loopMessage();
return winform,regFlag;
第三个是。主窗体检测是否注册。
/* 注册验证 */
regForm,regFlag = winform.loadForm("\res\reg.aau");
if( !regFlag ){
regResult = regForm.doModal( winform.hwnd );
//console.log( regResult );
//console.pause();
if( regResult ){ regForm.close(); }else { win.quitMessage(); return; }
}
发表评论