2

SOFTWARE\APPLICATION_NAME VERSION_NUMBER基本的に、私のアプリケーションのNSISは、アプリケーションが現在インストールされている場所を示すというキーに「パス」と呼ばれるレジストリ値を設定します。私は今、アプリケーションの以前のバージョンがインストールされているかどうかをチェックする機能を導入しようとしています。インストールされている場合は、以前の設定を使用することを提案します。複数のバージョンがインストールされている場合、ユーザーは設定を取得するバージョンを選択できます。私が抱えている問題は、以前にインストールされたバージョンのレジストリを検索することです。VERSION_NUMBERを含めると、パスを見つけることができるキーはバージョンごとに異なるため、「石に設定された」検索クエリはありません。

したがって、たとえばSOFTWARE\APPLICATION_NAME、パス情報を設定する場所としてバージョンを使用せずに最初から使用した場合、そのレジストリ値が存在するかどうかを確認できるため、これは簡単です。理想的な解決策は、ワイルドカードを使用して検索し、一致するすべてのパスを取得できるようにすることです(例SOFTWARE\APPLICATION_NAME*)。私は確かにこれから「VERSION_NUMBER」の挿入をやめることができますが、これはユーザーが次のリリースで現在の構成を維持することを許可せず、次のリリースで保持することを許可します(そしてそれは彼らが最初に最新バージョンから更新している場合です)。

私の質問が明確であることを願っています。明確にできることがあれば教えてください。

4

1 に答える 1

2

EnumRegKeyといくつかの基本的な文字列処理/比較を使用します...

于 2012-08-13T15:56:48.677 に答える