|
@@ -7,7 +7,7 @@ uses
|
|
|
|
|
|
const
|
|
|
ProductName = 'Measure';
|
|
|
- FileVersion = '1.0.0.0';
|
|
|
+ FileVersion = '1.0.0.1';
|
|
|
EncryptVersion = 'Auto1.0';
|
|
|
|
|
|
type
|
|
@@ -50,7 +50,9 @@ type
|
|
|
CreateExeVersion: string[20];
|
|
|
// 最后一次打开 -- Exe版本号
|
|
|
LastestExeVersion: string[20];
|
|
|
- Reserve: array [0..1024 - 21 - 21] of Char;
|
|
|
+ // 历史最大 -- exe版本号
|
|
|
+ MaxExeVersion: string[20];
|
|
|
+ Reserve: array [0..1024 -21 -21 -21] of Char;
|
|
|
end;
|
|
|
|
|
|
TEncryptConnection = class(TCommonConnection)
|
|
@@ -68,7 +70,8 @@ type
|
|
|
procedure ResetFileHead;
|
|
|
function CheckFileEncrypt: Boolean; overload;
|
|
|
function CheckFileEncrypt(AFileName: string): Boolean; overload;
|
|
|
- function GetIsLastest: Boolean;
|
|
|
+ function GetNeedUpdate: Boolean;
|
|
|
+ function GetOverExe: Boolean;
|
|
|
public
|
|
|
destructor Destroy; override;
|
|
|
procedure Open(const AFileName: string); override;
|
|
@@ -76,7 +79,8 @@ type
|
|
|
|
|
|
procedure UpdateFileVersion;
|
|
|
|
|
|
- property IsLastest: Boolean read GetIsLastest;
|
|
|
+ property NeedUpdate: Boolean read GetNeedUpdate;
|
|
|
+ property OverExe: Boolean read GetOverExe;
|
|
|
end;
|
|
|
|
|
|
procedure SimpleDecrypt(const ASourceFile, AResultFile: string);
|
|
@@ -343,6 +347,7 @@ begin
|
|
|
FFileHead.FileVersion := FileVersion;
|
|
|
FFileHead.CreateExeVersion := GetVersion;
|
|
|
FFileHead.LastestExeVersion := GetVersion;
|
|
|
+ FFileHead.MaxExeVersion := GetVersion;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -359,6 +364,46 @@ begin
|
|
|
FFileHead.LastestExeVersion := GetVersion;
|
|
|
end;
|
|
|
|
|
|
+procedure TEncryptConnection.UpdateFileVersion;
|
|
|
+begin
|
|
|
+ FFileHead.FileVersion := FileVersion;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TEncryptConnection.RecoverFileHead(AFileName: string);
|
|
|
+var
|
|
|
+ sTempFile: string;
|
|
|
+ FileStream: TFileStream;
|
|
|
+begin
|
|
|
+ sTempFile := ExtractFilePath(AFileName) + ExtractSimpleFileName(AFileName) + '.tmp';
|
|
|
+ CopyFile(PChar(AFileName), PChar(sTempFile), False);
|
|
|
+ try
|
|
|
+ if FileExists(sTempFile) then
|
|
|
+ begin
|
|
|
+ FileStream := TFileStream.Create(sTempFile, fmOpenWrite);
|
|
|
+ try
|
|
|
+ FileStream.Seek($00, soFromBeginning);
|
|
|
+ FileStream.Write(MDBOrgHead, SizeOf(MDBOrgHead));
|
|
|
+ finally
|
|
|
+ FileStream.Free;
|
|
|
+ end;
|
|
|
+ CopyFile(PChar(sTempFile), PChar(AFileName), False);
|
|
|
+ DeleteFile(PChar(sTempFile));
|
|
|
+ end;
|
|
|
+ except
|
|
|
+ DeleteFile(PChar(sTempFile));
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+function TEncryptConnection.GetNeedUpdate: Boolean;
|
|
|
+begin
|
|
|
+ Result := CompareCode(FileVersion, FFileHead.FileVersion, '.') > 0;
|
|
|
+end;
|
|
|
+
|
|
|
+function TEncryptConnection.GetOverExe: Boolean;
|
|
|
+begin
|
|
|
+ Result := CompareCode(FileVersion, FFileHead.FileVersion, '.') < 0;
|
|
|
+end;
|
|
|
+
|
|
|
{ TConnection }
|
|
|
|
|
|
procedure TConnection.Close;
|
|
@@ -416,39 +461,4 @@ begin
|
|
|
FConnection.Open;
|
|
|
end;
|
|
|
|
|
|
-function TEncryptConnection.GetIsLastest: Boolean;
|
|
|
-begin
|
|
|
- Result := CompareCode(CurrencyString, FFileHead.FileVersion, '.') > 0;
|
|
|
-end;
|
|
|
-
|
|
|
-procedure TEncryptConnection.UpdateFileVersion;
|
|
|
-begin
|
|
|
- FFileHead.FileVersion := CurrencyString;
|
|
|
-end;
|
|
|
-
|
|
|
-procedure TEncryptConnection.RecoverFileHead(AFileName: string);
|
|
|
-var
|
|
|
- sTempFile: string;
|
|
|
- FileStream: TFileStream;
|
|
|
-begin
|
|
|
- sTempFile := ExtractFilePath(AFileName) + ExtractSimpleFileName(AFileName) + '.tmp';
|
|
|
- CopyFile(PChar(AFileName), PChar(sTempFile), False);
|
|
|
- try
|
|
|
- if FileExists(sTempFile) then
|
|
|
- begin
|
|
|
- FileStream := TFileStream.Create(sTempFile, fmOpenWrite);
|
|
|
- try
|
|
|
- FileStream.Seek($00, soFromBeginning);
|
|
|
- FileStream.Write(MDBOrgHead, SizeOf(MDBOrgHead));
|
|
|
- finally
|
|
|
- FileStream.Free;
|
|
|
- end;
|
|
|
- CopyFile(PChar(sTempFile), PChar(AFileName), False);
|
|
|
- DeleteFile(PChar(sTempFile));
|
|
|
- end;
|
|
|
- except
|
|
|
- DeleteFile(PChar(sTempFile));
|
|
|
- end;
|
|
|
-end;
|
|
|
-
|
|
|
end.
|