#1
|
||||
|
||||
![]() Code:
Project: InnoSetup - Private Edition Based on: v6.4.0-dev (latest) Changes by: BLACKFIRE69 What's New: Code:
* Added Setup Directives: - Cursor - ResourceFiles - StorePrivateKey - StyleFile - EnableTaskbarPreview - AlphaBlendValue * Added Script Functions: - File Extraction: - procedure ExtractTemporaryFileEx(const BaseName: String; const DestDir: string); - function ExtractTemporaryFilesEx(const Pattern: String; const DestDir: string): Integer; - function ExtractTemporaryFileSize(const BaseName: String): Cardinal; - function ExtractTemporaryFileToBuffer(const BaseName: String; Buffer: Integer): Boolean; - function ExtractTemporaryFileToStream(const BaseName: String; const Stream: TStream): Boolean; - function ExtractResourceFile(const ResourceName: string; const OutFile: String): Boolean; - function ExtractResourceFileSize(const ResourceName: String): Cardinal; - function ExtractResourceFileToBuffer(const ResourceName: String; Buffer: Integer): Boolean; - function ExtractResourceFileToStream(const ResourceName: String; const Stream: TStream): Boolean; - Type Casting: - function CastAnsiStringToInteger(var S: AnsiString): LongInt; - function CastIntegerToAnsiString(const L: LongInt): AnsiString; - function wBufferToFile(const Buffer: Integer; const Count: Cardinal; const OutFile: WideString): Boolean; - Private Key Handling: - function GetStoredPrivateKey(const TheRealKey: Boolean): String; Code:
- Installation Control: - procedure BeginInstallProcPause; - procedure EndInstallProcPause; - function IsInstallProcPaused: Boolean; - Audio Playback: - function PlayWavFile1(const WavFileName: WideString): Boolean; - function PlayWavFile2(const WavFileName: WideString; Flags: Cardinal): Boolean; - function PlayWavFile3(const WavFileName: WideString; Handle, Flags: Cardinal): Boolean; - System Icon Retrieval: - function wGetSysDefaultIcons(const Src: WideString; SHLIcoSize: Cardinal; const Buffer: Integer; var Count: Cardinal): Integer; - function wGetSysDefaultIcons2(const Src, OutImgFile: WideString; SHLIcoSize: Cardinal): Boolean; - function wGetSysDefaultIconsSize(const Src: WideString; SHLIcoSize: Cardinal): Integer; - function wGetSysDefaultIconsFromResLib(const AModule: WideString; AIndex, RISIcoSize: Cardinal; const Buffer: Integer; var Count: Cardinal): Integer; - function wGetSysDefaultIconsFromResLib2(const AModule, AOutFile: WideString; AIndex, RISIcoSize: Cardinal): Boolean; - function wGetSysDefaultIconsSizeFromResLib(const AModule: WideString; AIndex, RISIcoSize: Cardinal): Integer; * Added Setup Event Functions: - procedure CurInstallProgressChangedEx(CurProgress, MaxProgress, iPercentage: Integer; sElapsed, sRemaining: String); - procedure InitializeWizardEve(); Code:
* Added Classes: - TApplication - TMemoryStream - TResourceStream - TImgSlideshow → SlideShow - TSplashImage → SplashScreen - TSplashImageAnimated → SplashScreenAnimated - TWaterRipples → WaterRipples * Added Class Variables: - Application: TApplication * Added Properties and Functions: - WizardForm: - WizardForm.AlphaBlendValue: Byte; - WizardForm.DoubleBuffered: Boolean; - WizardForm.BlendOnMoveEnable(const AllowOnDeactive: Boolean); - WizardForm.BlendOnMovePause(const Paused: Boolean); - WizardForm.BlendOnMoveOpacity(const AlphaValue: Byte); - WizardForm.BlendOnMoveIsPaused: Boolean; - WizardForm.CreateRgn(const sMaskBmp: WideString; iTrRGBColor: Integer): Integer; - WizardForm.CreateRgnFromBuffer(const Buffer: PAnsiChar; const Count: Cardinal; iTrRGBColor: Integer): Integer; - WizardForm.CreateFormFromBmp(const sBmpFile: WideString; bACPremultiplied, bDraggableForm: Boolean; iOpacityPct: Byte): Integer; - WizardForm.CreateFormFromBmpBuffer(const Buffer: PAnsiChar; const Count: Cardinal; bACPremultiplied, bDraggableForm: Boolean; iOpacityPct: Byte): Integer; - WizardForm.JumpToPage(const NewPageID: Integer); - UninstallProgressForm: - UninstallProgressForm.DoubleBuffered: Boolean; Code:
* Added Preprocessor (ISPP) Predefined Variable: - IS_PRIVATE_EDITION * New Built-in Support for Partially Encrypted Scripts: - Ability to encrypt portions of the code for sharing scripts, while leaving the rest as plain text. - I already explained what partially encrypted scripts mean here. * Changes: - IDE: - Minor syntax highlighting adjustments. * All the changes in the Private Edition are documented, so you can easily find help. InnoSetup - Private Edition Documentation
Code:
#ifndef IS_PRIVATE_EDITION #error InnoSetup 'Private Edition' is required to compile this script #endif 1). Cursor
Code:
[Setup] Cursor=.\Cursor\Dark.Ani
Code:
function ExtractResourceFile(const ResourceName: string; const OutFile: string): Boolean; function ExtractResourceFileSize(const ResourceName: string): Cardinal; function ExtractResourceFileToBuffer(const ResourceName: string; Buffer: Integer): Boolean; function ExtractResourceFileToStream(const BaseName: string; const Stream: TStream): Boolean; Code:
[Setup] ResourceFiles=Resource1:".\File1.ext"|Resource2:".\File2.ext"
Code:
procedure ExtractTemporaryFileEx(const BaseName: string; const DestDir: string); function ExtractTemporaryFilesEx(const Pattern: string; const DestDir: string): Integer; function ExtractTemporaryFileSize(const BaseName: string): Cardinal; function ExtractTemporaryFileToBuffer(const BaseName: string; Buffer: Integer): Boolean; function ExtractTemporaryFileToStream(const BaseName: string; const Stream: TStream): Boolean;
* Using `ExtractTemporaryFile`: Code:
[Files] Source: ".\XBass\{#MusicFileOnly}"; DestDir: {tmp}; Flags: dontcopy; [Code} procedure InitializeWizard(); var Buffer: AnsiString; Count: Cardinal; begin Count := ExtractTemporaryFileSize('{#MusicFileOnly}'); SetLength(Buffer, Count); ExtractTemporaryFileToBuffer('{#MusicFileOnly}', CastAnsiStringToInteger(Buffer)); if not xbassCreateFromMem(WizardForm.Handle, Buffer, Count, C_XBASS_OGG, 1, True, @MusicCallback) then MsgBox('XBass - error(s) occured while creating.', mbError, MB_OK); SetLength(Buffer, 0); end; Code:
[Setup] ResourceFiles=MusicX:".\XBass\{#MusicFileOnly}" [Code} procedure InitializeWizard(); var Buffer: AnsiString; Count: Cardinal; begin // InnoSetup-Private: ( Don't forget the prefix: "_IS_" ) Count := ExtractResourceFileSize('_IS_MUSICX'); SetLength(Buffer, Count); ExtractResourceFileToBuffer('_IS_MUSICX', CastAnsiStringToInteger(Buffer)); if not xbassCreateFromMem(WizardForm.Handle, Buffer, Count, C_XBASS_OGG, 1, True, @MusicCallback) then MsgBox('XBass - error(s) occured while creating.', mbError, MB_OK); SetLength(Buffer, 0); end;
Code:
[Setup] // Encryption Encryption=True Password=HelloPwd_123 StorePrivateKey=HelloPwd_123 // [Code} var IsPwdPg: Boolean; // function GetStoredPrivateKey(const TheRealKey: Boolean): String; // - TheRealKey: If False, the function returns garbage instead of real key. procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpPassword then begin IsPwdPg := True; WizardForm.PasswordEdit.Text := GetStoredPrivateKey(IsPwdPg); end else begin IsPwdPg := False; WizardForm.PasswordEdit.Text := 'wrng_pwd'; end; end;
Code:
[Setup] StyleFile=".\Styles\AquaGraphite.vsf" Code:
[Setup] EnableTaskbarPreview=True // 0 - 255 AlphaBlendValue=200
Code:
procedure CurInstallProgressChangedEx(CurProgress, MaxProgress, iPercentage: Integer; sElapsed, sRemaining: String); begin WzdProgressLbs[1].Vl.Caption := IntToStr(iPercentage) + '%'; WzdProgressLbs[2].Vl.Caption := sElapsed; WzdProgressLbs[3].Vl.Caption := sRemaining; WzdProgressLbs[4].Vl.Caption := sElapsed; end;
Code:
[Code} var Btn: array [1..2] of TNewButton; procedure CommonBtnOnClick(Sender: TObject); begin case Sender of Btn[1] : WizardForm.JumpToPage(wpWelcome); Btn[2] : WizardForm.JumpToPage(wpReady); end; end;
Code:
procedure InitializeWizardEve(); begin WizardForm.JumpToPage(wpReady); end; 1). TImgSlideshow Code:
[Files] Source: ".\Wallpapers\*.jpg"; DestDir: "{tmp}"; Flags: dontcopy; [Code} var ImgSlideshow: TImgSlideshow; procedure InitializeWizard(); var sFile: String; ImgEffectsArray: TIntEffectArray; Buffer: AnsiString; i, Count: Cardinal; begin SetLength(ImgEffectsArray, 3); ImgEffectsArray[0] := IMG_ANIM_RANDOM_SQUARES_APPEAR; ImgEffectsArray[1] := IMG_ANIM_SPECKLE_APPEAR_FROM_LEFT; ImgEffectsArray[2] := IMG_ANIM_SPIRAL_RECTANGLE; ImgSlideshow := TImgSlideshow.Create(WizardForm, IMG_ANIM_DIAGONAL_BOX_OUT); ImgSlideshow.SetBounds(0, 0, WizardForm.Width + ScaleX(85), ScaleY(269)); ImgSlideshow.PlayCustom(ImgEffectsArray, False); ImgSlideshow.Interval(1000, 50, 5); for i:= 1 to 5 do begin sFile := 'wallpapers' + IntToStr(i) + '.jpg'; Count := ExtractTemporaryFileSize(sFile); SetLength(Buffer, Count); ExtractTemporaryFileToBuffer(sFile, CastAnsiStringToInteger(Buffer)); ImgSlideshow.AddImageFromBuffer(Buffer, Count); SetLength(Buffer, 0); Count := 0; end; ImgSlideshow.Start(True); end; Code:
[Setup] ResourceFiles=SplshImg:".\Splash\Splash.png"|SplshWav:".\Splash\Splash.wav" [Code} var SplashScreen: TSplashImage; procedure InitializeWizard(); var Buffer1, Buffer2: AnsiString; Count1, Count2: Cardinal; begin // Image Count1 := ExtractResourceFileSize('_IS_SplshImg'); SetLength(Buffer1, Count1); ExtractResourceFileToBuffer('_IS_SplshImg', CastAnsiStringToInteger(Buffer1)); // Sound Count2 := ExtractResourceFileSize('_IS_SplshWav'); SetLength(Buffer2, Count2); ExtractResourceFileToBuffer('_IS_SplshWav', CastAnsiStringToInteger(Buffer2)); SplashScreen := TSplashImage.CreateFromBuffer(WizardForm, Buffer1, Count1, Buffer2, Count2, 1500); SplashScreen.Play; // Freeup SetLength(Buffer1, 0); SetLength(Buffer2, 0); end; Code:
[Setup] ResourceFiles=Img1:".\WaterRipple\Img.bmp" [Code} var WaterRipples: TWaterRipples; procedure InitializeWizard(); var Buffer: AnsiString; Count: Cardinal; begin WizardForm.DoubleBuffered := True; Count := ExtractResourceFileSize('_IS_Img1'); SetLength(Buffer, Count); ExtractResourceFileToBuffer('_IS_Img1', CastAnsiStringToInteger(Buffer)); WaterRipples := TWaterRipples.CreateFromBuffer(WizardForm, 0, 0, WizardForm.Width + ScaleX(85), ScaleY(269), Buffer, Count); if not WaterRipples.IsStarted then WaterRipples.Start; if not WaterRipples.IsRaining then WaterRipples.StartRainDrops; SetLength(Buffer, 0); end; 1). Blend OnMove Code:
procedure InitializeWizard(); begin WizardForm.BlendOnMoveEnable(True); end; Code:
[Files] Source: ".\MaskImg\*.bmp"; DestDir: {tmp}; Flags: dontcopy; [Code} procedure InitializeWizard(); var Buffer: AnsiString; Count: Cardinal; begin { Custom Shape } // Rgn Count := ExtractTemporaryFileSize('mask.bmp'); SetLength(Buffer, Count); ExtractTemporaryFileToBuffer('mask.bmp', CastAnsiStringToInteger(Buffer)); WizardForm.CreateRgnFromBuffer(Buffer, Count, clBlack); SetLength(Buffer, 0); // Form Count := ExtractTemporaryFileSize('base.bmp'); SetLength(Buffer, Count); ExtractTemporaryFileToBuffer('base.bmp', CastAnsiStringToInteger(Buffer)); WizardForm.CreateFormFromBmpBuffer(Buffer, Count, False, True, 100); SetLength(Buffer, 0); end; . |
The Following 11 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (19-09-2024), Behnam2018 (28-09-2024), Cesar82 (13-09-2024), Ele (17-09-2024), hitman797 (24-09-2024), Lord.Freddy (13-09-2024), mausschieber (13-09-2024), nordi (25-10-2024), ScOOt3r (13-09-2024), shazzla (14-09-2024), Valtus (14-09-2024) |
Sponsored Links |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Best Compression Methods for 'Specific' Games INDEX | JustFun | Conversion Tutorials | 48 | 31-01-2025 01:05 |
INDEX - CD2DVD Conversion Index **UPDATED: 17-07-2024** | Grumpy | PC Games - CD/DVD Conversions | 252 | 16-07-2024 21:35 |
Fallout Nv Ultimate Edition 3xDVD9 to 2xDVD5 InnoSetup 1 LANGUAGE | THADEADMAN2011 | PC Games - CD/DVD Conversions | 9 | 04-09-2022 06:40 |