2014-02-11 83 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