软件示例如何实现试用指定日期(日期软件试用系统期限)「软件设置试用时间限制」

软件最后试用日期是指限制用户只能试用软件到指定日期,如果超过了这个指定日期就不能继续试用了,需要注册购买后方可继续使用。
软件最后试用日期限制是软件试用天数限制的一种变形,软件最后试用日期是给定了一个最后日期,也就是只能使用从第一次使用到软件到给定的最后试用日期之间的这些天数。
比如第一次开始用软件是2021年5月2日开始,那么试用到期日为2021年5月12日。
其实也就是限定软件只能试用10天。
软件最后试用日期的实现思路如下:软件使用最后期限程序流程图1) 软件启动时,从注册表或文件里面读取限制信息。
如果信息为空,那么说明是第一次使用软件;将当前系统日期加密后存储到注册表或文件中。
2) 如不是第一次启动,存在以下几种情况: i. 当前系统日期<存储值,表明使用者调整过系统日期,提示使用者试用期已到。
ii. 当前系统日期=存储值,则表明当天是最后使用期限,可继续使用软件 iii.当前系统日期>=最后期限日期,表明试用期限已到,不可使用软件 iv.最后期限日期> or =最后期限日期,表明试用期限已到,软件不可试用 v. 给定日期 <=最后期限日期,且当前系统日期比存储值新,将当前日期存储到注册表或文件中,软件可正常使用。
实现限制软件使用日期的完整示例代码如下:unit LastDateUnit;interfaceuses Base64Unit,System.Win.Registry,Vcl.Controls,Winapi.Windows,System.SysUtils;function GetLastDate(LastDate:TDate):Integer;implementation//==============================================================================// 将日期写入到注册表//作者:键盘记忆//日期:2021年5月2日11点49分//==============================================================================function GetLastDate(LastDate:TDate):Integer;var Reg:TRegistry; RegStr,TempStr:String; begin Reg := ''; TempStr := ''; try Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; RegStr := 'SoftWare\Trial'; if Reg.OpenKey(RegStr,False) then begin TempStr := Reg.ReadString('TLastDate'); end; Reg.CloseKey; if TempStr = '' then begin if Reg.OpenKey(RegStr,False) then Reg.WriteString('TLastDate',Base64Encryption(DateToStr(Date))); Reg.CloseKey; Result := 0; end else begin // 当前系统日期<存储值,表明使用者调整过系统日期,提示使用者试用期已到。
if Date < StrToDate(Base64Decryption(TempStr)) then begin if reg.OpenKey(RegStr,False) then Reg.OpenKey('TLastDate',Base64Encryption(DateToStr(LastDate))); Reg.CloseKey; Result := 1; Exit; end; // if StrToDate(Base64Decryption(TempStr)) >= LastDate then begin Result := 1; Exit; end; if Date > LastDate then begin if Reg.OpenKey(RegStr,False) then begin Reg.WriteString('TLastDate',Base64Encryption(DateToStr(LastDate))); end; Reg.CloseKey; Result := 1; Exit; end; //当前系统日期=存储值,则表明当天是最后使用期限,可继续使用软件 if Date = StrToDate(Base64Decryption(TempStr)) then begin Result := 0; Exit; end; Result := 0; if Reg.OpenKey(RegStr,False) then Reg.WriteString('TLastDate',Base64Encryption(DateToStr(Date))); Reg.CloseKey; end; Reg.Destroy; except Result := -1; end; end;end.
软件示例如何实现试用指定日期(日期软件试用系统期限)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息