unit ConstUnit; interface const //パスワードの入ったファイル //SystemDirectory にあるファイル名で'L'で始まるもが多かった //DLL も多いだろうと、ただそれだけの名前 //一応名前がかぶらないように'$'も入れてみた DateDat='lion$.dll'; //期限(14 日) PassDate=14; AnsKey=$12; // ここは適当に 0 以外の数値を function GetPassWord:string; //タイムスタンプを得る function TimeStampOf(FileName:string):TDatetime; //タイムスタンプを変更する function SetTimeStamp(FileName:string;theDate:TDateTime):boolean; var DatFileName:string; //パスワード Pass:string; implementation uses Windows,SysUtils; var WinSysDir:array[0..260] of char; function GetPassWord:string; const TmpWord='zrkldttoleposirfvnv'; var i:integer; begin Result:=UpperCase(TmpWord[5])+TmpWord[10]+TmpWord[4]+ UpperCase(TmpWord[3])+TmpWord[10]+TmpWord[5]+TmpWord[8]; for i:=1 to Length(Result) do Result[i]:=Char(Ord(Result[i]) xor AnsKey); end; //タイムスタンプを得る function TimeStampOf(FileName:string):TDatetime; var FileHandle:THandle; Age:integer; begin if FileExists(FileName) then begin FileHandle:= FileOpen(FileName,fmShareDenyWrite); try Age:=FileGetDate(FileHandle); if Age=-1 then result:=0 else result:=FileDateToDateTime(Age); finally FileClose(FileHandle); end; end else Result:=0; end; //タイムスタンプを変更する function SetTimeStamp(FileName:string;theDate:TDateTime):boolean; var FileHandle:THandle; Age:integer; begin if FileExists(FileName) then begin Age:=DateTimeToFileDate(theDate); FileHandle:=FileOpen(FileName,fmOpenReadWrite); try Result:=(FileSetDate(FileHandle,Age)=0); finally FileClose(FileHandle); end; end else Result:=False; end; begin //SystemDirectory を求める GetSystemDirectory(WinSysDir,MAX_PATH); DatFileName:=WinSysDir; //例えば C:\windows\system\lion$.dll DatFileName:=DatFileName+'\'+DateDat; end.