inno-setupsplash-screenpascalscriptissi

Display Splash Screen while running setup in silent or very silent mode


I want to run a setup but display nothing else but a splash screen. I am currently using the logic suggested in this answer to run the setup in background:
How to make the silent installation by using Inno Setup?

However, I want to show a simple image during the installation that disappears once the setup is done. I think we can use the InitializeSetup and DeinitializeSetup functions, but I am not sure how.

After reading the question How to hide the splash screen in verysilent mode setup of Inno Setup using ISSI?, it seems like ISSI (Inno Setup Script Includes) has this sort of feature. But ISSI is unavailable for download since its website is dead.

Additionally I also tried answers suggested in this question Inno Setup - Transparent Splash Screen, but that seems to work only on InitializeWizard and not on InitializeSetup.

So, how can I run a background setup but only display a image (jpeg, png or gif)?


Solution

  • To display splash screen, just display the form and never hide it. Like this:

    procedure InitializeWizard();
    var
      SplashForm: TSetupForm;
    begin
      if WizardSilent then
      begin
        SplashForm := CreateCustomForm;
        SplashForm.BorderStyle := bsNone;
        SplashForm.Position := poScreenCenter;
        SplashForm.ClientWidth := ScaleX(500);
        SplashForm.ClientHeight := ScaleY(350);
        SplashForm.Show;
    
        // Put some image/contents to the splash screen here
      end;
    end;
    

    Though I'm not sure there's a way to hide the wizard in the silent mode. That might be a topic for a separate question.

    Though actually, in the silent mode, you can turn the wizard itself into the splash screen by covering it with the image.