Wise インストーラーでインストールされるアプリケーションがあります (編集: Wise は MSI ではなく Setup.exe ファイルを作成します)。インストール時に、特定のファイル タイプのアイコンが設定されます。
HKEY_CLASSES_ROOT\.auz\DefaultIcon = C:\Path\To\App\some_icon.ico,0
ただし、インストール直後に、エクスプローラーは、一般的な「ホワイト シート + アプリケーション アイコン」アイコンを使用してこのアイコンを表示することを選択しますが、これは異なります (私が提供したものではありません)。
最初の起動時に、アプリケーション自体がアイコンやその他のファイルの関連付けを登録するため、最後に実行されたバージョンがそれらのドキュメントを「所有」します。その時点で、エクスプローラーはこのファイルの種類のアイコンを変更し、正しいアイコンを表示しますが、レジストリを見ると、DefaultIcon の値はまったく同じです。
これは私がこれまでに試したことです
- レジストリからすべてのエントリを削除し、自分で書き込みます。
- インストール後、DefaultIcon の値に「触れ」、 SHChangeNotify(SHCNE_ASSOCCHANGED)のみを呼び出す小さなプログラムを起動します(私のプログラムは、レジストリ内のファイルの関連付けを更新した後にこれを行います)。
- インストール後、エクスプローラーを強制終了して再起動します。
- インストール後、TweakUI を使用してデスクトップ上のアイコンを「修復」します。
これらのどれも機能しません。正しいアイコンを取得する唯一の方法は、プログラム自体にインストールさせることです。レジストリに変更が見つかりません。髪を引っ張っています。
避けたいこと
- 別のインストーラー ソフトウェアでのテスト
- インストール スクリプトを変更しすぎています (インストーラーはオンデマンドで別のマシンにビルドされるため、Wise 自体はありません)。
- 実行可能ファイルにアイコンを埋め込みます。
インストール後にエクスプローラーに正しいアイコンを表示させる方法について何か提案はありますか?