sfxgenerator.pas
来自「本系统在一些大中型企业(跨多达24个区域)一直都在很好的服务过」· PAS 代码 · 共 91 行
PAS
91 行
unit SFXGenerator;
interface
uses
Windows,
Messages,
Classes,
SysUtils,
ArchiverMisc,
ArchiverRoot,
CustSFXGenerator;
type
DWord = Integer;
TOverwritemode=(confirm,overwrite,skip,update,existing,updateexisting);
TCommentMode=(none,Before,After,Both);
TTagInfo = packed record
ExecuteFileAfterExtract:boolean;
UserChooseFilesToExtract:boolean;
UserChooseOverwriteMode:boolean;
UserAllowedToDontRunTheFile:boolean;
DefaultOwerwriteMode:TOverwritemode;
SFXFileSize:DWord; //Dateigr鲞e des fertigen SFX, also: SFX.EXE-Code, sizeof(TTagefile) and Archivesize
CommandLine:string[80];
Caption:string[60];
DefaultExtractPath:string[80];
CopyrightLine:string[80];
Language:TLanguage;
Comment:TCommentMode;
end;
TSFXGenerator = class( TCustomSFXGenerator )
protected
function GetSFXCodeSize : Integer;
procedure UpdateLanguage; override;
public
TagInfo : TTagInfo;
// Creators & Destructor
constructor Create( AOwner : TComponent ); override;
destructor Destroy; override;
procedure WriteSFXCodeToStream( S : TStream ); override;
procedure UpdateTagInfos( S : TStream ); override;
end;
procedure Register;
implementation
{$R SFXCode.res}
procedure Register;
begin
RegisterComponents('Backup Tools', [TSFXGenerator]);
end;
function TSFXGenerator.GetSFXCodeSize : Integer;
var
ResHandle : THandle;
begin
ResHandle := FindResource( hinstance, PChar('SFXEXE_1'),'SFXEXE' );
if ResHandle <> 0 then
Result := SizeOfResource( hinstance, ResHandle )
else
Result := 0;
end;
procedure TSFXGenerator.UpdateLanguage;
begin
inherited;
TagInfo.Language := Language;
end;
constructor TSFXGenerator.Create( AOwner : TComponent );
begin
inherited;
NewSFXCodeSize := GetSFXCodeSize;
NewTagInfoSize := sizeof(TTagInfo);
TagInfo.ExecuteFileAfterExtract := True;
TagInfo.UserChooseFilesToExtract := True;
TagInfo.UserChooseOverwriteMode := True;
TagInfo.UserAllowedToDontRunTheFile := True;
TagInfo.DefaultOwerwriteMode := confirm;
TagInfo.SFXFileSize := 0;
TagInfo.CommandLine := '';
TagInfo.Caption := 'SFX Archive';
TagInfo.DefaultExtractPath := '<TD>';
TagInfo.CopyrightLine := 'This is the CopyrightLine.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?