我可以在Inno Setup中交换ISSI SplashScreen和语言选择对话框吗?

问题描述 投票:0回答:1

这是我的代码:

#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 swap
1个回答
0
投票

在语言选择对话框之前,Inno Setup中无法执行anything

在此之前没有触发event。>>


唯一的解决方法是实施您自己的语言对话框。有关示例,请参见:Inno Setup - Language selector with VCL Styles

© www.soinside.com 2019 - 2024. All rights reserved.