ショボ短歌会

現在、いくつかの拡張子(bmpやpdfなど)に関連付いているプログラムのアイコンを取得しようとしています。
アイコン取得自体は、プログラムパスがあれば”ExtractAssociatedIcon”等でいけそうと目星はついています。
ですが、実ファイルがなく、拡張子(bmpやpdfなど)から関連付いているプログラムパスもしくはアイコンを取得するよい方法はないでしょうか?

レジストリに登録されている拡張子情報からプログラムを取得し、そのプログラムを別のキーから検索するなどでもいけそうですが、けっこう大変そうなので・・・
レジストリの拡張子情報は、「HKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Explorer→FileExts」から取得しようと思っています。

SHGetFileInfoやExtractAssociatedIconに拡張子を渡してみましたが取れなさそうでした。使い方が間違ってるのかもしれません。(EXEパスからはOKでした)

なにかご存じの方がいらっしゃいましたら、お教えください!よろしくお願いします。

A 回答 (1件)

拡張子文字列(".bmp" とか ".pdf")からアイコンデータを取得できれば良い、ということでしょうか。



特に私自身は詳しくはないのですが、以下のサイトにサンプルがあるようです(IconFromExtension())。
SHGetFileInfo() で問題なさそうですね、引数をお間違えではないでしょうか。

参考URL:http://www.codeproject.com/KB/cs/iconhandler.aspx
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
サンプルを試したところ、問題なく取得できました。
引数を完全に理解していなかったようです。

レジストリからやっていたら、コード量がぜんぜん違っているところでした。
ほんとうにありがとうございました。

お礼日時:2008/07/16 09:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!