这是我的代码:
#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(ExpandConstant('{cm:ClientDoesNotExist, {#SetupSetting('AppVerName')}}'), mbCriticalError, MB_OK) = IDOK then
begin
Result := False;
//I need not to show the SplashScreen after this Exit
//I need only to show it before the language selection dialog
Exit;
end
end;
#define ISSI_IncludePath "C:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"
我使用ISSI_InitializeSetup
检查我要为其安装更新的应用程序是否已安装。如果没有,我显示MsgMox
并退出。如果是,我将安装更新。问题是,如果RegValueExists
返回False
,则无论如何都显示SplashScreen
。我想在启动安装程序时在语言选择对话框之前显示它。是否可以不必创建我自己的语言选择对话框来做到这一点?
在语言选择对话框之前,Inno Setup中无法执行anything。
在此之前没有触发event。>>
唯一的解决方法是实施您自己的语言对话框。有关示例,请参见:Inno Setup - Language selector with VCL Styles