2016-07-02 35 views
0

を必要なときだけ、私は必要なときにのみ、アンインストール用のレジストリキーを作成するために[Setup]セクションでディレクティブCreateUninstallRegKeyを強制する必要がアンインストールレジストリキーを作成します。Inno Setupの:

たとえば、レジ​​ストリキーのアンインストールを作成する条件を設定した場合、条件がTrueになったときにのみ作成する必要があります。 それ以外の場合は、レジストリキーのアンインストールを作成しないでください。私はInno Setupの中でこれを行うことができますどのように

UPDATED QUESTION

私が書いたコードは次のとおりです。このコードでは

[Setup] 
CreateUninstallRegKey=RegKeyDeterminer 

[Code] 
function RegKeyDeterminer(): Boolean; 
    begin 
    Result:= ISDoneError = True; 
    if ISDoneError = True then Result:= True; 
end; 

、アンインストールレジストリキーは常に作成されます。 (これは私が書いたコードでは間違っているはずです)

ISDoneError = Trueの場合は、Uninstallレジストリキーを作成しないでください。

ISDoneError = Falseの場合は、Uninstallレジストリキーを作成する必要があります。

ISDoneErrorはTrueまたはFalseの値を持っている。(これは、7-ZIP、RARからファイルを抽出するために使用されるダイナミックリンクライブラリですISDone.dllブール関数である、Inno Setupの中のバイナリなどのアーカイブ。)

これらは条件です。 間違いや条件設定のエラーが見える場合は、自分のコードを修正してください。

ありがとうございます。

+0

* "私は条件を設定した場合は、" * - どのような状況?キーを作成する必要がある場合の例を教えてください。 –

+0

あなたに私の状態を知らせることなく、私は自分の仕事を最悪にしました。私の更新された質問を参照してください。 – GTAVLover

+0

エラー処理のソリューションが正しく表示されません。何か問題が発生した場合でも、インストーラが終了することを許可しないでください。 **インストーラが終了していないことを**偽装して、ハックしないでください。真ISDoneError =が、結果場合 –

答えて

2

CreateUninstallRegKey directiveは、その値としてboolean expression/functionを取ることができます。

だから、あなたがそうでなければ、キーとFalseを作成する必要がある場合にTrueを返すために機能を実装します。

[Setup] 
CreateUninstallRegKey=CreateKey 

[Code] 

function CreateKey: Boolean; 
begin 
    Result := condition; 
end;