Delphi程序的时限和加密方法

Delphi程序的时限和加密方法,第1张

本例中TRegistry是关键类 Delphi 不能自行加入 需在uses部分手工加入 registry 通过其方法 ReadString 和 WriteString 来读出和写入字符 亦可通过其方法 ReadDate 和 WriteDate 来读出和写入日期

程序第一次运行就写入其运行时间 应用期限为 天 超过 天就不再运行 全局变量NoRegistry SpareDays来分别判断是否注册和剩余期限 自定义函数Encrypt为用户名到

密码的变换函数

一 程序启动时 通过搜索注册表 判断是否第一次运行和是否注册 来确定程序是否运行

procedure TForm FormCreate(Sender: TObject)var Reg:TregistryKeyName TempCode TempName TempStr:stringSame:IntegerFirstDate NowDate:TdatetimeNumberOfDays:realbegin NoRegistry:=trueNowDate:=date//取得运行时系统日期try//创建注册表 有该键则读取 无则创建 Reg:=Tregistry Create Reg RootKey :=ey_local_machineKeyName:= Sofarejsjbxample if Reg OpenKey(KeyName true) then begin TempName:=Reg ReadString( UsrName )TempCode:=Reg ReadString( Passwd )//读取用户名 注册号 try FirstDate:=Reg ReadDate( Date )//非第一次则读入第一次运行时间 except Reg WriteDate( Date NowDate)// 若为第一次运行 则写入系统日期 FirstDate:=NowDateendend reg CloseKey finally reg Free endTempStr:=Encrypt(TempName)//通过自定义函数Encrypt()来获取密码 Same:=CompareText(TempStr TempCode)//比较密码 if TempName<>then if Same= then NoRegistry:=false//验证密码 通过NoRegistry为false if NoRegistry then begin //若未注册 NumberOfDays:=Nowdate FirstDateSpareDays:=round( NumberOfDays)Label Caption :=FloatToStr(SpareDays)if((NumberOfDays>) or (NumberOfDays<)) thenbeginshowmessage( 程序未注册超过试用期或更改系统时间 将终止运行! )application Terminate//超过 天 则禁止运行endendend

二 注册过程 其响应入口可放于 About 内

procedure TAbout Button Click(Sender: TObject)var InptName InptCode RealCode:StringSame:IntegerReg:TregistryKeyname:Stringbegin if NoRegistry then //未注册时做 begin RealCode:= InptName:= InputBox( 注册 输入你的名字 )if InptName<>then begin InptCode:= InputBox( 注册 输入注册号 )RealCode:=Encrypt(InptName)Same:=CompareText(RealCode InptCode)if (Same<>) thenshowmessage( 注册号码不对 注册未成功! ) else begin //密码匹配时做 把用户名 密码写入注册表 TryReg:=Tregistry Create Reg RootKey :=ey_local_machineKeyName:= Sofarejsjbxample if Reg OpenKey(KeyName true) then beginReg WriteString( Passwd InptCode)Reg WriteString( UsrName InptName)endreg CloseKey finally Reg Free endNoRegistry:=false//可修改注册后的界面 endendendend    三 密码的变换函数 此变换函数可由读者自由发挥 在此 仅示一例而已

lishixinzhi/Article/program/Delphi/201311/8395

日期时间类型:TDateTime;本质是double,双精度类型;

整数部分代表日期,小数部分代表时间

数值为0时,代表 12/30/1899 12:00 am

因为是double类型,日期调整可以直接以数值加减 *** 作,

具体控制有很多函数,都包含在 Unit:DateUtils中

函数列表:

CompareDate function

CompareDateTime function

CompareTime function

DateOf function

DateTimeToJulianDate function

DateTimeToModifiedJulianDate function

DateTimeToUnix function

Day of week constants

DayOf function

DayOfTheMonth function

DayOfTheWeek function

DayOfTheYear function

DaysBetween function

DaysInAMonth function

DaysInAYear function

DaysInMonth function

DaysInYear function

DaySpan function

TDateTime values.

DecodeDateDay procedure

DecodeDateMonthWeek procedure

DecodeDateTime procedure

DecodeDateWeek procedure

DecodeDayOfWeekInMonth procedure

EncodeDateDay function

EncodeDateMonthWeek function。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11088329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存