Delphi实现提取可执行文件内部所有图标-Delphi-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝29
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:168回复:0

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

楼主#
更多 发布于:2016-06-12 11:58

Delphi完成获取可执行文件内部一切图标,Delphi教程,Delphi事例,Delphi实例

本实例完成的
功能是
能够从消费者
取舍的可执行文件(后缀名为exe)中获取悉数图标并且显现在窗体上 。
在窗体中添加TImage
组件、TOpenDialog组件和TButton组件,TImage组件充任显现文件内图标的容器,TOpenDialog组件和TButton组件用来激活
提醒消费者
取舍GIF动画的对话框 。添加组件后的窗体如图1所示 。
win8怎样关机?教你4种win8关机办法揭秘!十二星座女人最喜欢的自拍个性
 怎么准确设置Windows 7的虚拟内存?各种Windows7装置办法及解析
小白变大师 人像摄影速成窍门大集合Windows7自修正怎么运用




图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 程序运转
结果
本实例完成的
功能是
能够从消费者
取舍的可执行文件(后缀名为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 程序运转
结果









优质IT资源分享社区为你提供此文。
本站有大量优质Delphi教程视频,资料等资源,包含Delphi基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。
Delphi教程视频
优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客