« くださいコピーして登録ウィンドウにキーの下を貼り付けます | トップページ | LINQ »

2011年8月 4日 (木)

UserChoice\Progid

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.EXT\UserChoice というレジストリキーの下にProgidという名前の値があると、その値の内容が拡張子.EXTに対するProgIDとみなされるらしい。HKEY_CLASSES_ROOT\.EXTの@よりも優先して。

ここには、おなじみのEXT_auto_fileというProgIDの他に、Application\program.exeという文字列が設定されることもある様子。こんな\を含んだ文字列は、COMのProgIDとして許されないはずなのだが。

また、このUserChoiceというキーは、ユーザーがエクスプローラーのGUIでデフォルトアプリケーションを変更したときにできるらしいことがわかったが、変更しても常にできるわけでもなさそう。このキーが作られる条件は不明。謎が多い。

MSDNのどこにも、そんなこと書いてない(と思う。ずいぶん探したけど)。googleで探しても、このレジストリキーに関して大勢の人が混乱している様子はわかったが、ちゃんとした説明はみつからない。

ってか、問題になるレジストリキーで探すというのは、答えがわかったからできることで、トラブルの原因を探してるときにはそんな検索は不可能だし。

ってことで、結局、これに起因するバグの解決に2ヶ月以上かかったのでした。

あーあ。

MobiHandlerを試してくれたけど、うまく動いていない人(特に、.azw/.mobiに対応するビューアープログラムを複数種類インストールしていて、デフォルトアプリを切り替えている人)は、いつものSkyDriveのページから、バージョン1.1.1268をダウンロードしてお試しください。上の現象の対策が入っています。

« くださいコピーして登録ウィンドウにキーの下を貼り付けます | トップページ | LINQ »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/285638/41082976

この記事へのトラックバック一覧です: UserChoice\Progid:

« くださいコピーして登録ウィンドウにキーの下を貼り付けます | トップページ | LINQ »