ファイルを開くプログラムの選択でのレジストリの…
対象としたいのはXP以降です。(そもそも仕様が違ってて、この括り自体がなりたたなかったら済みません。その場合はとりあえずXP限定です。)
自作ファイルフォーマットを作ったので
自分のアプリに関連付けたい、ということで
WindowsAPIを使い
レジストリの
HKEY_CLASSES_ROOTの下に
「.拡張子名」のキーを設置、その(既定)のデータにREG_SGで「飛ばす先のキー名」を指定し
「飛ばす先のキー」の下に
DefaultIcon
とshell\\open\\command
の指定を作り
SHChangeNotify( SHCNE_ASSOCCHANGED, SHCNF_FLUSHNOWAIT, 0, 0 );
としました。
しかし、これによって
アイコンが変わったのは確認できましたが
以前に
「ファイルを開くプログラムの選択」ダイアログ
で、メモ帳に関連付けていたせいか
そっちが優先されて、独自ファイルダブルクリックでやはり現状メモ帳が開いてしまいます。
再起動しても変化はありませんでした。
そこで、逆に
.txt形式のテキストファイルは、普通にメモ帳で開くようにしてあったのですが
「ファイルを開くプログラムの選択」
にて
自分のアプリを指定したところ
やはり、変化し
結果両者は逆転しました。
このとき、HKEY_CLASSES_ROOT
の下の
「.txt」および「txtfile」キーがらみの部分は変化しているように思われませんでした。
ここから
この箇所よりも優先されている部分がレジストリにあるのでは?
と考えたのですが
この考えは正しいのでしょうか?
正しい場合は、「ファイルを開くプログラムの選択」ダイアログ
によって、どの部分が変化するのでしょうか?
正しくない場合は、どういった原因がありえるのでしょうか?