アンインストールプロセスでレジストリエントリの復元を適切に処理するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/402017

  •  03-07-2019
  •  | 
  •  

質問

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

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

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

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

  • 何もしないと、Openアクションは削除された実行可能ファイルを指します。
  • アプリケーションAへのポインタの復元は、同様に削除された実行可能ファイルです。
  • これは通常、一般的なユーザーの技術的スキルを超えた方法と見なされるため、ユーザーへの質問は許可されません。同意しない場合は、ステップ1および2で、ユーザーが回答する範囲外と思われる別のレジストリの変更に置き換えます。
  • アクションを削除するには、ユーザーが情報に基づいていない決定を後で行うか、ユーザーが一部の機能を利用できないようにする必要があります。

これは、明確で唯一の「正しい」が存在しない、私が想像できる多くの悪い状況の1つにすぎません。溶液。次のプロジェクトでは、インストール中にレジストリの変更が必要になります。アンインストールのベストプラクティスまたは推奨プラクティスを知りたいです。残念ながら、現在の商用パッケージのアンインストールの悪い習慣に燃えているので、ここでベストプラクティスに関するコンセンサスが得られないことを認識しています。 、またはその両方。

これは私にとって非常に現実的なプログラミングの問題です。これに主観的なタグを付けているのは、これに対する1つだけのサイズに合う 正しい 答えがあるかどうかわからないからです。お気軽にご意見をお寄せください。

役に立ちましたか?

解決

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top