提取图标

提取图标到ImageList

const
  SFile='D:\windows\system32\shell32.dll';
var
 i:integer;
 Count:integer;
 hIcon:HWND;
 icon:TICON;
begin
 Count :=-1;
 Count :=ExtractIcon(HInstance,SFile,Count);
 icon :=TICon.Create;
 try
  for i:=0 to Count-1 do
  begin
   hIcon :=ExtractIcon(HInstance,SFile,i);
   icon.Handle :=hIcon;
   imgList.AddIcon(icon);
   lstView.Items.Add.ImageIndex :=i;
  end;
 finally
  icon.Free;
 end;
end;  

提取图标并保存到本地
function GetFileIcon(const Filename:string;SmallIcon:Boolean):HICON;
var
 info:TSHFILEINFO;
 Flag:Integer;
begin
 if SmallIcon then
  Flag :=(SHGFI_SMALLICON or SHGFI_ICON)
 else
   Flag :=(SHGFI_LARGEICON or SHGFI_ICON);
  SHGetFileInfo(PChar(Filename),0,Info,Sizeof(info),flag);
 Result :=info.hIcon;
end;

procedure TForm1.Button1Click(Sender:TObject)
var
 icon:HICON;
 myicon:TIcon;
begin
 icon :=GetFileIcon('E:\...\1.exe',False);
 myicon :=TIcon.Create;
 myicon.Handle :=icon;
 myicon.SaveToFile('D:\s1.ico');
 DrawIconEx(Image1.Canvas.handle,10,10,icon,0,0,0,0,DI_NORMAL);
 myicon.Free;
end; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值