Delphi实现提取可执行文件内部所有图标

  本实例实现的功能是能够从用户选择的可执行文件(后缀名为exe)中提取所有图标并且显示在窗体上。

  在窗体中添加TImage 组件、TOpenDialog组件和TButton组件,TImage组件充当显示文件内图标的容器,TOpenDialog组件和TButton组件用来激活提示用户选择GIF动画的对话框。添加组件后的窗体如图1所示。


  图1 添加组件后的窗体

  首先在窗体的uses段中添加ShellAPI,然后添加按钮响应代码如下:

  procedure TfrmMain.btnOpenClick(Sender: TObject);

  var

  i: Integer;

  Large, Small: HICON;

  nIcons: Integer;

  begin

  if OpenDialog1.Execute then

  begin

  self.Image1.Canvas.Refresh;

  nIcons:=ExtractIconEx(PChar(OpenDialog1.FileName), -1, Large, Small, 1);

  for i:=0 to nIcons-1 do

  begin

  ExtractIconEx(PChar(self.OpenDialog1.FileName), i, Large, Small, 1);

  DrawIcon(self.Image1.Canvas.Handle,(i div 4)*40,(i mod 4)*40,Large);

  end;

  end;

  end;

  当用户在程序运行过程中选择一个可执行文件后,程序首先通过self.Image1.Canvas. Refresh语句清除TImage组件上的显示内容,然后通过将ExtractIconEx函数的第2个参数指定为-1来取得可执行文件中图标的数目。得到数目后,通过一个循环中的ExtractIconEx (PChar(self.OpenDialog1.FileName), i, Large, Small, 1)语句把可执行文件中的大、小图标分别存储在Large和Small变量中。最后通过DrawIcon函数在TImage组件上绘制图标。

  程序代码如下:

  unit Unit1;

  interface

  uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ShellAPI, Grids, ExtCtrls;

  type

  TfrmMain = class(TForm)

  btnOpen: TButton;

  OpenDialog1: TOpenDialog;

  Image1: TImage;

  procedure btnOpenClick(Sender: TObject);

  private

  { Private declarations }

  public

  { Public declarations }

  end;

  var

  frmMain: TfrmMain;

  implementation

  {$R *.dfm}

  procedure TfrmMain.btnOpenClick(Sender: TObject);

  var

  i: Integer;

  Large, Small: HICON;

  nIcons: Integer;

  begin

  if OpenDialog1.Execute then

  begin

  self.Image1.Canvas.Refresh;

  nIcons:=ExtractIconEx(PChar(OpenDialog1.FileName), -1, Large, Small, 1);

  for i:=0 to nIcons-1 do

  begin

  ExtractIconEx(PChar(self.OpenDialog1.FileName), i, Large, Small, 1);

  DrawIcon(self.Image1.Canvas.Handle,(i div 4)*40,(i mod 4)*40,Large);

  end;

  end;

  end;

  end.

  保存文件,然后按F9键运行程序,程序运行的初始画面如图2所示。

  单击“打开”按钮,弹出一个提示用户选择可执行文件的对话框。确认后,在窗体的TImge组件上显示所选择的可执行文件中存储的图标,如图3所示。


  图2 程序运行的初始画面


  图3 程序运行结果

时间: 2024-09-15 20:51:26

Delphi实现提取可执行文件内部所有图标的相关文章

delphi编写提取exe文件的ICO图标

会写自己的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:=

如何提取officeVisio2010的菜单栏图标?

问题描述 如何提取officeVisio2010的菜单栏图标? 上面的图标如何提取呀?非常感谢! 解决方案 网上有提取好的 http://www.cnblogs.com/Sunwayking/articles/1508802.htmlhttp://www.cppblog.com/aqazero/archive/2012/02/03/9816.html

Delphi提取EXE,DLL文件图标

//uses ShellAPI procedure   TForm1.Button1Click(Sender:   TObject); var       IconIndex:Word;       h:hICON; begin       IconIndex:=0;       h:=ExtractIcon(HInstance,pchar('c:"windows"notepad.exe'),IconIndex);       DrawICon(Form1.canvas.Handle,

iconworkshop教你轻松提取程序文件中图标

  首先大家需要下载这款图标制作软件iconworkshop,这是一款功能十分强大的ico图标制作软件,在各大软件站的ico图标制作类软件下载排名第一,很多设计公司都会使用. 下载完成后打开这款ico图标制作软件,然后选择"文件-打开",选择一个程序文件exe,dll等(以QQ音乐图标为例)或者通过文件浏览器打开程序文件,出现下面的窗口: 1 .在窗口中显示了此应用程序内所有的图标图案; 2 .选择要提取的图标; 3 .然后选择"图标-导出为windows图标或者导出为mac

Delphi实现24位真彩色图标

引言 Delphi是目前广泛使用的可视化开发工具,它自身带有一个图片.图标的编辑器--Image Editor,但是到Delphi7为止,都不能进行真彩图标的编辑,可以说是一个遗憾.笔者通过对图标文件的研究,实现了产生24位真彩色图标. 图标文件的格式 首先,分析一个具体的图标 .在CS1.6中有一个图标game.ico( ),如果用WinHex等可以进行16进制编辑的软件打开这个图标文件,我们可以看到如下数据: 00 00 01 00 04 00 10 10 00 00 00 00 00 00

Delphi中提取时间成分

DateOf.TimeOf.YearOf.MonthOf.WeekOf.DayOf.HourOf.MinuteOf.SecondOf.MilliSecondOf函数用于提取时间成分 它们的参数都是一个 TDateTime, DateOf.TimeOf 分别提取日期与时间, 并返回 TDateTime 类型; YearOf.MonthOf.WeekOf.DayOf.HourOf.MinuteOf.SecondOf.MilliSecondOf 返回的都是 Word 类型. unit Unit1; i

图标提取工具:如何从应用程序中提取图标

电脑用得久了时不时就会碰到一些有着美丽外表的软件图标,光彩夺目,如何将这些美丽的图标据为己有?这就要求你得具备一些图标提取技能了~~下面且听小编慢慢道来--如何利用图标提取工具从应用程序中提取图标! 图标提取工具:Axialis IconWorkshop(集图标制作.处理.编辑和提取功能为一体的图标提取工具,能快速从应用程序内提取ico.icon等格式图标) Axialis IconWorkshopz 风信网http://www.aliyun.com/zixun/aggregation/1847

Delphi制作带图标的弹出式选单

Windows界面的一大特色就是显示丰富多彩的图标,图标不仅美化了Windows的桌面,而且便于直观的操作,给用户带来了极大的方便.在设计程序界面时,Windows风格是很好的参考. Delphi一般提供两种设置图标的方法,一个是在Project Options 中指定应用程序的图标,另一个是在Object Inspector 的properties页中提供Icon特性.如果想设计出像Windows开始选单那样美丽的弹出选单,就要自己编写代码了. 我们知道大多数Windows应用程序本身带有图标

043_《Delphi程序开发范例宝典(第2版)》

<Delphi程序开发范例宝典(第2版)> Delphi 教程 系列书籍 (043) <Delphi程序开发范例宝典(第2版)> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 作者: 梁水 丛书名: 软件工程师典藏 出版社:人民邮电出版社 ISBN:9787115216762 上架时间:2010-1-8 出版日期:2010 年1月 开本:16开 页码:770 版次:2-1 内容简介 本书全面介绍了delphi程序开发所