0

[Dirs] セクションにカスタム ディレクトリを作成しています。以下のように定義されています。

[Dirs]
Name: {code:WrkGetWorkingDir}; Flags: uninsalwaysuninstall

[Code]
function WrkGetWorkingDir( Param: String ): String;
begin
Result := WrkOptionsPage3.Values[0];
end;

アンインストーラーでは、そのディレクトリパスを何らかの方法で決定し、それを使用して、削除される前にその中のファイルにアクセスしたいと考えています。アンインストーラーで WrkGetWorkingDir 呼び出しが失敗します。そのパスをいくつかの魔法の InnoSetup 変数 (またはセクション) に保存することは可能ですか、それともレジストリまたはカスタム ファイルに保存する必要がありますか?

4

1 に答える 1

3

はい。RegisterPreviousDataSetPreviousData、およびを読んでくださいGetPreviousData

また、CodeDlg.iss サンプル スクリプトとwiki のいくつかの例を参照することもできます。

もう 1 つの方法は、アプリケーションが使用できるように、インストール時に既に書き込まれているファイルまたはレジストリ設定からアンインストーラーに読み込ませることです。

ただし、最後に、ユーザーが入力したパスの削除の設定には細心の注意を払う必要があります (または、実際には任意のパスの完全な dir+file 削除)。一部のユーザーは、これを実際には望まない予期しない場所に誤って設定する場合があります削除したこと。

于 2013-01-19T09:27:18.377 に答える