How can I prevent showing the splash screen when I need it? Should I add some ISSI-code to do that?
Here is my code:
#define ISSI_Splash "C:\InnoSetupProject\Images\client.bmp"
#define ISSI_Splash_T 3
#define ISSI_Splash_X 500
#define ISSI_Splash_Y 220
[Code]
function ISSI_InitializeSetup : Boolean;
begin
Result := True;
if not RegValueExists(HKLM, 'SOFTWARE\MyApp\Client', 'LocaleID') then
if MsgBox('Client does not exist', mbCriticalError, MB_OK) = IDOK then
begin
Result := False;
{ How can I prevent showing the splash screen here? }
Exit;
end
end;
#define ISSI_InitializeSetup
#define ISSI_IncludePath "C:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"
Instead of legacy ISSI_InitializeSetup
function, use Inno Setup 6 event attributes:
[Code]
<event('InitializeSetup')>
function MyInitializeSetup: Boolean;
begin
Result := True;
if not RegValueExists(HKLM, 'SOFTWARE\MyApp\Client', 'LocaleID') then
if MsgBox('Client does not exist', mbCriticalError, MB_OK) = IDOK then
begin
Result := False;
end;
end;
and remove this:
#define ISSI_InitializeSetup
The MyInitializeSetup
will be called before the ISSI InitializeSetup
. And if it returns False
, the ISSI won't ever be called, so no splash screen will show.
Check the documentation for Event Attributes:
The implementations will be called in order of their definition except that any main implementation (=the implementation without an event attribute) will be called last.
If the event function has a return value then lazy evaluation is performed:
InitializeSetup
,BackButtonClick
,NextButtonClick
,InitializeUninstall
:
- All implementations must return True for the event function to be treated as returning True and an implementation returning False stops the calls to the other implementations.