プログラムを作成し、複数の独自の拡張子を使えるようにしました。ところがそれぞれの拡張子とアイコンの連携がうまくいかず試行錯誤しましたが、最終的にうまくいきましたので備忘録として残しておきます。
拡張子 .aaa と .bbb
プログラムのパスはC:\Program Files\XXX\YYY.exe
拡張子 .aaa用のアイコンはC:\Program Files\XXX\aaa.ico、インデックスは0
同じく.bbb用のアイコンはC:\Program Files\XXX\bbb.ico、インデックスは0
プログラムの名称は、MyAppとします。
最終的に動いたレジストリは次のとおりです。すべて文字列なのでTypeは省略します
HKEY_CLASS_ROOT
├ .aaa (Default) MyApp.AssocFile.AAA
├ .bbb (Default) MyApp.AssocFile.BBB
├ MyApp.AssocFile.AAA
│ ├ DefaultIcon (Default) C:\Program Files\XXX\aaa.ico,0
│ └ shell
│ └ open
│ └ command (Default) C:\Program Files\XXX\YYY.exe "%1"
├ MyApp.AssocFile.BBB
│ ├ DefaultIcon (Default) C:\Program Files\XXX\bbb.ico,0
│ └ shell
│ └ open
│ └ command (Default) C:\Program Files\XXX\YYY.exe "%1"
※ ”AsscocFile”という記載はMediaPlayerのレジストリ記載を真似ただけでこうでなくてはいけないということではないようです。拡張子の(Default)の値に登録した名称と同じになれば良いと思われます
※ 登録後、Explorerを再起動したら反映されました