ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

実行ファイルのアイコンを ExtractIcon で抽出 

更新 : 2010/06/17

 



解説:
実行ファイルのアイコンを取得するには、ExtractIconEx 関数を使います
。この関数は、アイコンが複数含まれた、ダイナミックリンクライブラリからも大きいアイコンや小さいアイコンが取得できます。

HICON ExtractIcon(
    HINSTANCE hInst,              // インスタンスのハンドル
    LPCTSTR lpszExeFileName, // ファイル名
    UINT nIconIndex                 // アイコンのインデックス番号
);

通常は、アイコンのインデックスを 0 に指定します。こうすると、ファイルの最初のアイコンのハンドルが返ります。
アイコンの総数が知りたければ、-1 を指定すると分かります。

Tips には、
システム定義アイコンの抽出関数 LoadIcon や exe 以外のファイルから抽出する SHGetFileInfo 関数も掲載してあります。参考にしてください。

使用例:
以下の例では、アプリケーションのアイコンを抽出して、Image1 に描画しています。

準備として Image, Button を適当に配置します。

アプリケーションを起動して、Button1 をクリックしてください。
アプリケーションのアイコンが ExtractIconEx 関数を使うことで Image1 に描画されます。

時間のある方は、複数のアイコンを取り出してみるといいでしょう。

#include "shellapi.h"
//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{    
    Image1->Picture->Icon->Handle = ExtractIcon(Application->Handle,
                                                                      "Project1.exe",
                                                                      0);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.