본문 바로가기

자료/Inno-Setup

이노 셋업 (Inno Setup) // 스플래쉬 스크린을 표시해보자


이노 셋업 (Inno Setup) // 스플래쉬(Splash) 스크린




ISSI 기능중에 스프래쉬 스크린 기능이 있길래
ISSI 없이 스플래쉬 스크린을 표시해보고 싶어서
이리저리 둘러다니다가 발견한 방법입니다.

이노 셋업 자체에서 지원하지 않아서 그런지 조금 복잡하네요 ^^;
주의 ) 용량이 너무 큰 이미지는 exe 실행시 버벅거림이 있을수 있습니다.
주의 ) 스플래쉬 이미지 표시 시간이 너무 길면 버벅거릴수 있습니다.


이노 셋업 스크립트에 아래 코드를 추가해주시면 됩니다.

[Files]
Source: C:\Inno Setup 5\Splash.bmp; DestName: Splash.bmp; Flags: dontcopy nocompression

[Code]
var Splash : TSetupForm;

function InitializeSetup(): Boolean;
var
 BitmapImage1 : TBitmapImage;
begin
 Splash := CreateCustomForm;
 Splash.BorderStyle := bsNone;

 BitmapImage1 := TBitmapImage.Create(Splash);
 BitmapImage1.AutoSize := True;
 BitmapImage1.Align := alClient;
 BitmapImage1.Left := 0;
 BitmapImage1.Top := 0;
 BitmapImage1.stretch := True;
 BitmapImage1.Parent := Splash;

 ExtractTemporaryFile('Splash.bmp');
 BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\Splash.bmp');

 Splash.Width := BitmapImage1.Width;
 Splash.Height := BitmapImage1.Height;
 Splash.Center;
 Splash.Show;

 BitmapImage1.Refresh;

 Sleep(1000)

 Result := True;
end;

procedure InitializeWizard();
begin
 Splash.Close;
end;  





Sleep(1000) 이란 스플래쉬 스크린 표시 시간입니다.
숫자가 커질수록 스플래쉬 스크린 표시 시간이 길어집니다.

제가 사용해본 결과 1000 ~ 2000 이 가장 적당한 시간입니다.