如何在delphi中编写并提取exe文件里面的ICO图标

 我来答
windblast
2017-08-04 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

提取 exe 文件里面的 ICO 图标,通常可以 WinAPI 函数 ExtractIcon,以下是示例代码:

procedure TForm1.RzBitBtn1Click(Sender: TObject);
var iCount: Integer;
begin
  if OpenDialog1.Execute then
  begin
    Edit1.Text := OpenDialog1.FileName;
    iCount := ExtractIcon(HInstance, PChar(OpenDialog1.FileName), $FFFFFFFF);
    if iCount>0 then
    begin
      Label2.Caption := Format('当前 EXE 文件中共包含 %d 个 ICON 资源。',[iCount]);
      Image1.Picture.Icon.Handle := ExtractIcon(HInstance,PChar(OpenDialog1.FileName),0);
    end else
    begin
      Label2.Caption := '当前 EXE 文件中不包含 ICON 资源。';
    end;
  end;
end;

运行效果截图:

龙氏风采
2017-11-16 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
会写自己的EXE程序,但没一个好看的EXE图标,是不是很遗憾啊?很多软件都有很好看的图标,我们为什么不提取出来呢?下面教你怎么用delphi编程提取EXE文件的图标,并保存为ICO格式的.
代码如下:
procedureTForm1.getIcon;
var
Count:Integer;
FileName:String;
i:integer;
begin
if(FileName<>Edit1.Text)then
begin
FileName:=Edit1.Text;
I:=0;
Count:=ExtractIcon(Application.Handle,PChar(FileName),
$FFFFFFFF);
end
else
Inc(I);
if(I<count)then
Image1.Picture.Icon.Handle:=
ExtractIcon(Application.Handle,PChar(FileName),I)
else
ShowMessage(’没有找到!’);
end;
procedureTForm1.Button1Click(Sender:TObject);
begin
getIcon;
end;
procedureTForm1.Button2Click(Sender:TObject);
begin
opendialog1.Execute;
edit1.Text:=opendialog1.FileName;
end;
procedureTForm1.Button3Click(Sender:TObject);
begin
savedialog1.Execute;
image1.Picture.SaveToFile(savedialog1.FileName);
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式