0

アプリケーションのインストール中に Windows レジストリ設定を変更する必要がある場合があります。私は最近、アプリケーションをアンインストールしてもこれらの設定が復元されないことに不満を感じています。これについてさらに考えてみると、レジストリ設定を保存および復元するための適切な (または有効な) 方法がない可能性があることに気付きました。たとえば、次の一連のイベントを考えてみましょう。

  1. アプリケーション A は、ファイル拡張子 の Open アクションを所有しています.abc
  2. アプリケーション B がインストールされ、ファイル拡張子 の Open アクションをハイジャックします.abc
  3. アプリケーション A がアンインストールされます。
  4. アプリケーション B がアンインストールされます。

ステップ 3 で、アプリケーション A が十分にスマートであれば、Open アクションを所有していないことを検出し、それを復元する試みをスキップします。

ステップ 4 で、アプリケーション B が実行できる有効なアクションはありますか?

  • 何もしないと、削除された実行可能ファイルを指す Open アクションが残ります。
  • 同様に、アプリケーション A へのポインターの復元は、削除された実行可能ファイルです。
  • ユーザーに質問することは、通常、一般的なユーザーの技術的スキルをはるかに超えていると見なされるため、許可されていません。同意しない場合は、手順 1 と 2 で、ユーザーが回答する範囲外と思われる別のレジストリ変更に置き換えます。
  • 同様に、アクションを削除すると、ユーザーは後で何も知らずに決定を下さなければならなくなります。

これは、明確な唯一の「正しい」解決策がないという、私が想像できる多くの悪い状況の 1 つにすぎません。私の次のプロジェクトでは、インストール中にレジストリを変更する必要があります。アンインストールのベスト プラクティスまたは推奨プラクティスを知りたいです。残念ながら、私は現在の商用パッケージの不適切なアンインストール プラクティスに悩まされてきました。したがって、ここでのベスト プラクティスについてコンセンサスが得られていないことは承知しており、それを正しく行うには多くの作業が必要であるか、レジストリの設計上の欠陥のいずれかです。 、 または両方。

これは私にとって非常に現実的なプログラミングの問題です。これに対する画一的な正解があるかどうかわからないので、主観的とタグ付けします。お気軽に異議を唱えてください。

4

1 に答える 1

1

アプリケーション B を作成している場合は、そもそも .abc 拡張子の Open アクションをハイジャックしないでください。インストール中に、.abc ファイルをプログラムに関連付けるかどうかをユーザーに尋ねます。アンインストール中に、プログラムがまだ関連付けられているかどうかを確認してください。その場合はファイル拡張子の関連付けを解除し、そうでない場合はそのままにしておきます。

B をアンインストールした後も .abc ファイルに関連付けたい別のアプリケーションがある場合は、難しい - ユーザーに修正してもらいます。結局、彼は .abc ファイルをあなたのアプリケーションに関連付けることに同意し、あなたのアプリケーションをアンインストールしました。

于 2008-12-31T01:21:39.027 に答える