2017-07-08 8 views
1

興味のある人には、hereと関連する質問があります。私は質問の一つを別に聞いてみることを勧められました。それがうまく機能Runエントリの説明に標準Inno Setupメッセージを使用

Filename: "{cmd}"; Parameters: "/C exit"; Description: "Exit Setup"; \ 
    Flags: nowait postinstall runasoriginaluser unchecked skipifsilent; Check: IsWin64 

は、だから私は、この [Run]コードを持っています。

InnoSetup install complete

しかし、問題は言葉遣い終了セットアップは、英語でハードコードされていることである:それは、インストールの最後に次のウィンドウが表示されます。今、私はdefault.islファイルを見て見つけた:

ExitSetupTitle=Exit Setup 
ClickFinish=Click Finish to exit Setup. 

私はこれらのメッセージのいずれかを使用してしなければならない場合、私は知りません。 ClickFinishを使用することは、ユーザーにとってやりがいのあることだから意味があります。

しかし、私はrunステートメントでそのメッセージをどのように使用するかを考え出すことはできません。私はに供給された答えを変更した

更新:

function GetClickFinishSetupMessage(Param: string): string; 
var 
    I: integer; 
    S1: string; 
    S2: string; 
begin 

    S1 := SetupMessage(msgClickFinish); 
    I := Length(S1); 
    S2 := Copy(S1, I-1, 1); 
    if(S2 = '.') then 
     S1 := Delete(S1, I-1, 1); 
    end; 

    result := S1; 
end; 

は、だから私は、最後のピリオドを削除することができます。しかし、それは編集されません。それはDeleteの3番目のパラメータの不一致があると言います。 scripted constantから

答えて

2

使用SetupMessage support function

[Run] 
Filename: ...; Description: {code:GetClickFinishSetupMessage} 
[Code] 

function GetClickFinishSetupMessage(Param: string): string; 
begin 
    Result := SetupMessage(msgClickFinish); 

    { Drop trailing dot, if any } 
    if Copy(Result, Length(Result), 1) = '.' then 
    SetLength(Result, Length(Result) - 1); 
end; 
+0

ああ、私は '気づいていたが、SetupMessage'スクリプトセクションからそれを使用する方法を考え出すことができませんでした。ありがとうございました。私が今持っている唯一の化粧品には、この定数の最後にピリオド(少なくとも英語ではあります)があります。したがって、最初の2つにはピリオドがありません。ラジオ*オプションの文脈では、私は期間を期待しませんでした。最後の文字が「。」の場合は削除できますか? –

+0

更新された質問をご覧ください。 –

+0

私の更新された答えを見てください。 –

関連する問題