📄 sfxgenerator.pas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -