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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在delphi中编写并提取exe文件里面的ICO图标相关的知识,希望对你有一定的参考价值。

提取 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;

运行效果截图:

参考技术A 会写自己的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;

新手提问delphi如何生成EXE文件

刚开始学delphi,书后光盘给了一个大型管理系统的程序。尝试着对部分窗体进行了改动,但是怎么重新生成一个exe应用程序呢?绞尽脑汁也想不出来,求大神指教!万分感谢!

delphi 的工程文件,如果包含有多个窗体,可以设置某个窗体为启动的主窗体,设定完成之后,修改其中的窗体或文件代码,直接按快捷键 Ctrl + F9 ,就可以将源代码编译成 exe 文件。


参考技术A 按 绿色的三角 按钮,就会自动生成exe程序并调试追问

可是它有好多个窗口和工程,要在哪个里面点啊?而且我新建一个工程可以按,书后的那个不可以按绿色的钮啊

追答

你先选择你要跑道工程,然后再点啊。
如果有多个的话,你要找到管理系统的主工程

参考技术B 按下F9
运行后关闭
然后按下Ctrl+\ 直接找到EXE

以上是关于如何在delphi中编写并提取exe文件里面的ICO图标的主要内容,如果未能解决你的问题,请参考以下文章

Delphi编写的软件如何打包成exe格式的软件

求教在delphi中,如何把一个exe做为res加入到dll中,并在运行时生成exe文件执行

delphi 如何把其他exe文件加入dll中,并调用

如何关闭运行中的excel.exe delphi

delphi中如何打开指定文件夹

求教在delphi中,如何把两个exe做为res加入到另一个exe中,并在运行时释放两个exe