• ベストアンサー

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

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

  • アイコンにD&Dしたファイル名の取得

    Visual Basic6.0で作ったアプリケーションの実行ファイルのアイコンに、あるファイルをドラッグ&ドロップで重ねて実行(ExcelとかWordみたいに)した時にそのファイル名を取得する方法を教えて下さい。例えば、実行ファイルのアイコンに、何かの書類をD&Dしたら、即座にそれをどこかへコピーする、といったものを作る場合です。よろしくお願いします。

  • Cocoa Objective-c でアプリケーションアイコンにファイ

    Cocoa Objective-c でアプリケーションアイコンにファイルをドロップしてファイル名を取得するには、 どうすれば良いでしょうか? ヒントを教えて頂けますか? よろしくおねがいします。

    • ベストアンサー
    • Mac
  • DragDropイベントでファイル数を取得

    複数ファイルを選択し、それをフォームにドラッグアンドドロップした時に、リストボックスにファイル名を表示させるようにしたのですが、そのファイル数を取得するにはどうしたらよいのでしょうか?

  • ドラッグ&ドロップについてです。(VB.NET)

    フォーム上に「PictureBox」コントロールを置いた状態で実行し、その「PictureBox」にデスクトップ等からファイルやフォルダをドラッグ、ドロップしまして、そのファイルやフォルダのパス名を取得するにはどうすればいいですか? そのプログラムのサンプルがあるサイトでもいいです。

  • C# FTPサーバ アイコン取得

    FTPサーバからファイル名とアイコンを取得してListViewに表示させたいのですが アイコンの取得がうまくいきません。ファイル名のみは出来ました。 SHGetFileInfo("ftp://localhost/test.txt", 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_LARGEICON); みたいな感じで取得できないかと試してみましたが駄目でした。 詳しい方ご教授お願いします。

  • エクセル マクロで任意のフォルダのパスを取得する方法

    エクセルを使用して、任意のフォルダを指定し、その中に入っているファイル(jpg画像ファイル)の名前を取得、画像をエクセルシート内に貼り付けていくというマクロを作成しています。 今回質問はその前段の部分、使用者が任意のフォルダを指定して、そのフォルダのパスをマクロが取得するというところでてこずっています。 現時点では、画像が入っているフォルダのウィンドウのアドレスバーに入っているパスを、コピぺでフォームに貼り付けさせてます^^; それだと使用者にウインドウにアドレスバーを表示するには…みたいなところから説明しなければならないのでユーザーライクではありません。 そこで、通常良くあるような、フォルダやファイルを指定させるダイアログを出したり、もしくはフォームに任意のフォルダをドラッグ&ドロップしたりすることで、任意のフォルダのパスを取得できたらな、と思っています。 そのような方法(もしくはより良い方法)を実現するマクロの組み方をご存知でしたら、教えてくださいm(__)m 宜しくお願いします。

  • VBSを起動後にファイルをドラッグ&ドロップ

    [環境] Windows 7 お世話になります。 完全にお遊び程度の内容になりますが、 VBSでドラッグ&ドロップしたファイルのファイル名を取得するプログラムを 作成しているのですが、 検索してもそれらしき方法が見つからずヤキモキしています。 まだ起動していないVBSファイルに対してのドラッグ&ドロップする方法であれば 結構HITするのですが、そうではなく私がやろうとしているのは、 既に起動しているVBSのアプリにドラッグ&ドロップをしたファイル名を 取得したいのです。(ちなみに取得したいのはフルパス) 取得したファイル名はInputBoxか何かに表示する程度でいいのですが、 案外むずかしかったりするのでしょうか? ご回答よろしくお願いします。

  • FileMaker Pro 8.5でフルパスを取得するには

    お世話になっています FileMaker Pro 8.5でオブジェクトフィールドにファイルをドラッグすると、そのファイルのフルパスを取得するようなことはできないでしょうか? 『ファイルを「画像フィールド」にドラッグ→「ファイルパスフィールド」にそのファイルのフルパスがハイパーリンク形式で書き出される(ファイルが画像だった場合はサムネイルが「画像フィールド」に表示される)→そのフルパスをダブルクリックするとファイルが開く』 ということをやりたいのです。 どなたかお知恵を貸してください。 宜しくお願いします。

  • アプリケーションのあるファイル名を取得

    VBプログラミングをしているのですが、 その本体がある場所のファイル名を取得したいのですが、なにかよい方法はあるでしょうか? たとえば 本体.exeまでのフルパスが C:\Documents and Settings\Administrator\My Documents\ファイルA\本体.exe としたら C:\Documents and Settings\Administrator\My Documents\ファイルA までを取得したいのです。 世ろ紙お願いいたします。

  • IME2007の単語登録画面を一発で開く方法は?

    IME2007の言語バーのアイコンをクリックすると、"単語の登録"画面が開きますが、これをランチャーに登録して一発で開きたいと思います。 実行ファイル名とパスを教えていただけないでしょうか?

専門家に質問してみよう