Exe/DLLからアイコンを取り出す

EXEやDLLファイルからアイコンを取り出すには ExtractIcon を使用します。最後のゼロは取得するアイコンのインデックスです。-1を指定するとアイコンの数が取得できます。
※uses節に ShellAPI の宣言が必要です。

以下のサンプルはフォーム上に TListView と TImageList、TButtonを配置してから、TButtonのクリックイベントに記述してください。実行後ボタンを押すと指定した Exeファイルのアイコンを TListViewに表示します。

■ Exeファイルからアイコンを取得する例
  procedure TForm1.Button1Click(Sender: TObject);
  var
    icoData : TIcon;    { 取得したアイコン退避用 }
    intCnt  : integer;  { アイコンの総数 }
    ix      : integer;
    NewItem : TListItem;{ リストビューへの新規項目 }
  begin
    icoData :=  TIcon.Create;
    ImageList1.Clear;
    { アイコンの総数を調べる }
    intCnt  :=  ExtractIcon(hInstance,'d:\borland\delphi 3\bin\delphi32.exe',-1);
    for ix  :=  0 to  intCnt - 1  do
    begin
      { アイコンを取得する }
      icoData.Handle  :=  ExtractIcon(hInstance,'d:\borland\delphi 3\bin\delphi32.exe',ix); 
      { イメージリストへの追加 }
      ImageList1.AddIcon(icoData);
      { そのアイコンを使ったリストアイテムを作成 }
      NewItem :=  ListView1.Items.Add;
      NewItem.ImageIndex  :=  ix;
      NewItem.Caption     :=  'アイコン ' + IntToStr(ix + 1);
    end;
    icoData.Free;
  end;

関連項目

関連付けを元にアイコンを取り出す