$PBExportHeader$uo_security3.sru forward global type uo_security3 from nonvisualobject end type end forward global type uo_security3 from nonvisualobject end type global uo_security3 uo_security3 type prototypes //PRIVATE FUNCTION Long getcpuid() LIBRARY "getcpuid.dll" end prototypes type variables int ins_try_day=90 //使用时间 string ins_computer_key string ins_msg OLEObject ins_ljr3Object public string ins_LastErrorMsg = "" public integer ins_ErrorFlag = 0 private string ins_regcode = "" private date ins_LimitDate private string ins_version_id private string ins_mmkey end variables forward prototypes public function integer f_register (string arg_regcode) public function integer f_check () public function string f_get_signkey () public function integer uof_check () public subroutine uof_init_mmkey (string arg_mmkey) public function string uof_getregcode () private function long getvolumeid () public function date uof_getlimitdate () public function boolean uof_readdog () public function integer uof_checkdog () public subroutine uof_init_version_id (string arg_version_id) end prototypes public function integer f_register (string arg_regcode); Int rslt = 0 rslt = ins_ljr3Object.f_register(arg_regcode,ins_mmkey, ins_version_id) IF rslt = 1 THEN ins_ErrorFlag = 0 ELSE ins_ErrorFlag = 90 //注册失败 ins_LastErrorMsg = "注册失败!" END IF RETURN rslt end function public function integer f_check ();//f_check //0 no //1- tryyes //2- allway yes //-1 error,需要注册 Int rslt = 0 String ls_regcode = "" Date ld_LimitDate String arg_msg Boolean lb_ReadDog = FALSE rslt = ins_ljr3Object.f_check(ins_version_id, ins_mmkey, ls_regcode, ld_LimitDate, arg_msg) ins_regcode = ins_ljr3Object.f_GetRegCode() ins_LimitDate = Date(ins_ljr3Object.f_getlimitdate()) //string ls_ls //ls_ls = ins_ljr3Object.f_getlimitdate() //messagebox("限制时间",ls_ls) lb_ReadDog = ins_ljr3Object.ReadDog() IF rslt = 2 THEN //已注册 sys_if_register = 1 sys_if_network = 0 sys_if_locker = 1 ELSE sys_if_register = 0 // sys_if_network = IF uof_readdog() THEN sys_if_locker = 1 ELSE sys_if_locker = 0 END IF END IF RETURN rslt end function public function string f_get_signkey ();string ls_str //ins_ljr3Object.getvolumeid(getvolumeid()) return ins_ljr3Object.f_get_signkey(ins_version_id) end function public function integer uof_check ();//f_check //0 no //2-allway yes 1- tryyes //-1 error Int rslt = 0 String ls_signkey = '' ls_signkey = f_get_signkey() rslt = f_check( ) //IF rslt = 1 THEN //try // IF rslt = 1 THEN ins_regcode = '' //ELSEIF rslt = 2 THEN //reg ok // sys_if_register = 1 //ELSEIF rslt = -1 THEN //need reg // //END IF if rslt = 2 then sys_if_register = 1 else sys_if_register = 0 end if RETURN rslt end function public subroutine uof_init_mmkey (string arg_mmkey);//ins_version_id = arg_system_id ins_mmkey = arg_mmkey end subroutine public function string uof_getregcode ();return ins_regcode end function private function long getvolumeid ();//RETURN Abs(getcpuid()) RETURN Abs(23393986) end function public function date uof_getlimitdate ();return ins_LimitDate end function public function boolean uof_readdog ();return ins_ljr3Object.ReadDog() end function public function integer uof_checkdog ();return ins_ljr3Object.ReadDog() end function public subroutine uof_init_version_id (string arg_version_id);ins_version_id = arg_version_id //ins_mmkey = arg_mmkey end subroutine event constructor;long ll_status ins_ljr3Object = CREATE OLEObject ll_status = ins_ljr3Object.ConnectToNewObject("EwiserpReg.ljr") IF ll_status < 0 THEN CHOOSE CASE ll_status CASE -1 ins_LastErrorMsg = "Invalid Call: the argument is the Object property of a control" CASE -2 ins_LastErrorMsg = "Class name not found" CASE -3 ins_LastErrorMsg = "Object could not be created" CASE -4 ins_LastErrorMsg = "Could not connect to object" CASE -9 ins_LastErrorMsg = "Other error" CASE -15 ins_LastErrorMsg = "MTS is not loaded on this computer" CASE -16 ins_LastErrorMsg = "Invalid Call: this function not applicable" END CHOOSE ins_ErrorFlag = ll_status else ins_ErrorFlag = 0 END IF end event event destructor;DESTROY ins_ljr3Object end event on uo_security3.create call super::create TriggerEvent( this, "constructor" ) end on on uo_security3.destroy TriggerEvent( this, "destructor" ) call super::destroy end on