• ベストアンサー

アプリケーションなどのアイコンの取得

最近ランチャーを作り始めたのですが、フォーム上にドラッグしたファイルのパスから、そのファイルのアイコンを取得したいのですが、 ファイル名からアイコンの取得というのはどのようにおこなえばよいのでしょうか・・・ いきなり質問ですみません。結構急いでます^^; どなたか回答、よろしくおねがいしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.3

|えっとですね、実行ファイルからアイコンを取得する方法は分かるんです。 |じゃなくて、.txtとか、.jpgとかのアイコンを取得したいんです。 この関数ですね ExtractAssociatedIcon これで検索してください。 また、 SHGetFileInfoにもEXE名だけでなくJPG/GIFなどの関連付けされたファイルをそのまま指定できたと思うのですけど。違いましたっけ? #ヘルプには確かにEXE名としか書いてませんけどね

genki140
質問者

お礼

できましたできました!! どんなファイルのアイコンでも取得できました。 皆さん本当にいろいろありがとうございました。 教えていただいたことを生かして、すばらしいプログラムを作りたいと思います。 本当にありがとうございました。

その他の回答 (4)

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.5

リンク先、およびOfficeなどのアプリケーションのアイコンの取得のキーワードは、 IShellLink MsiGetShortcutTarget MsiGetComponentPath で検索するといいでしょう。 COMの知識が必要ですよ。 頑張ってね ショートカットの小さなアイコンの取得の仕方は…DLLで直接かな?

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.4

もう一つ付け加えておくと、関連付けられているEXE名の取得には次の関数を使います。これでもう、出来ないとは言わせませんよ ^^;) FindExecutable

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

以下のページが参考になりませんかね C/C++のコードで書いてないけど、、、 .NET TIPS 実行ファイルからアプリケーションのアイコンを取得するには? http://www.atmarkit.co.jp/fdotnet/dotnettips/280getappicon/getappicon.html #SHGetFileInfoが分かったあなたなら大丈夫かと思うんだけど

genki140
質問者

補足

回答ありがとうございました。 えっとですね、実行ファイルからアイコンを取得する方法は分かるんです。 じゃなくて、.txtとか、.jpgとかのアイコンを取得したいんです。 それをやるには、.txtが関連付けられている実行ファイルのパスを求める必要があるんでしょうか? もしそうなのでしたらその方法を教えていただけるとありがたいです。 (ほかの方法があるのでしたらそれでかまいません) また、ショートカット(.lnk .pif とか)のアイコンも取得したいのですが、その場合はリンク先をたどるしかないのでしょうか? そのやり方だと、ショートカット固有の左下の矢印は消えてしまいますよね? その矢印も一緒にアイコン画像として取得することはできないのでしょうか? なんどもなんども質問ばかりですみません、どうかお願いします。

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

これですかね。 ExtractIcon http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/icons/iconreference/iconfunctions/extracticon.asp あとはこれをキーワードに検索かければサンプルがいくらでも見つかります。 Good luck!

genki140
質問者

補足

すばやい回答ありがとうございました。 おかげさまで、実行ファイルのアイコンの取得はできたのですが、それ以外ではうまくいかないみたいです。 実行ファイルはファイル内にアイコンの情報があるので簡単に取得できるみたいなのですが, .txtとか、そのファイル自体にアイコン画像が埋め込まれていない場合の取得方法が分かりません、いろいろ調べてみたのですが、 SHGetFileInfoというキーワードで皆さんはやっているみたいなのですが、 使い方など、調べてみてもまったく分かりません。 どなたかお願いします。

関連するQ&A