2014-02-11 47 views
1

我想使用vcl-styles或isskin来设置我的inno-setup安装程序。我尝试了两种,而且看起来很棒。唯一的问题是不幸的是,在执行InitializeSetup事件(其中是皮肤加载)之前,Select Setup语言对话框就已经显示出来了。选择安装语言对话框

[Files] 
Source: ..\VclStylesinno.dll; DestDir: {app}; Flags: dontcopy 
Source: ..\Styles\Amakrits.vsf; DestDir: {app}; Flags: dontcopy 

[Code] 
// Import the LoadVCLStyle function from VclStylesInno.DLL 
procedure LoadVCLStyle(VClStyleFile: String); external '[email protected]:VclStylesInno.dll stdcall'; 
// Import the UnLoadVCLStyles function from VclStylesInno.DLL 
procedure UnLoadVCLStyles; external '[email protected]:VclStylesInno.dll stdcall'; 

function InitializeSetup(): Boolean; 
begin 
    ExtractTemporaryFile('Amakrits.vsf'); 
    LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf')); 
    Result := True; 
end; 

procedure DeinitializeSetup(); 
begin 
    UnLoadVCLStyles; 
end; 

因此,目前不可能将样式应用于该对话框。假设没有办法设置活动语言(据我所知,如果有我会创建自定义选择语言形式)我没有看到任何解决方案。我喜欢能够设置我的设置,所以现在寻找任何可能的解决方法。除了派发issrc并为我的需要重建它之外,有没有人有任何想法?

+0

RRUZ有['相同problem'(http://stackoverflow.com/q/21612920/960757)。你将不得不建立你自己的Inno Setup版本。 – TLama

+0

已分叉issrc。但后来我停下来想了一会 - 也许它更快地创建自己的本地化,是吧? 任何提示在哪里改变事情,我提到你是issrc contributore,TLama? – mishander

+0

制作自己的本地化并不是要走的路,因为有些内容是从语言文件内部读取的,而您不能截取的内容(例如所有消息对话框)。我不是一个贡献者,但是我过去做过很多定制的Inno Setup。你需要做的是在['script runner被初始化之后]的某处移动['language intialization'](https://github.com/jrsoftware/issrc/blob/is-5_5_4/Projects/Main.pas#L3040) '](https://github.com/jrsoftware/issrc/blob/is-5_5_4/Projects/Main.pas#L3116)。但要非常小心。它可能会破坏某些东西......没时间检查这个更深的...... – TLama

回答

0

从帮助和我的安装脚本:

[setup] section: 
; When set to auto, the dialog will only be displayed if Setup does not find a language identifier match 
ShowlanguageDialog=yes 

如果设置为无任何语言对话框将显示

+0

这是真的,但问题是没有办法提供自己的语言对话框。一个对话框,将被设计。 – TLama