文档章节

WinAPI: ExtractIcon - 获取 EXE、DLL 或 ICO 文件中的图标

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 279
阅读 9
收藏 0
//声明:
ExtractIcon(
  hInst: HINST;           {调用函数的程序实例}
  lpszExeFileName: PChar; {文件路径; 文件可以是 *.exe、*.dll、*.ico}
  nIconIndex: UINT        {图标索引}
): HICON; {返回图标句柄; 索引为 0 时返回第一个图标句柄; 索引为 #FFFFFFFF 时返回图标总数}

 
 
 
 
 

 

 

  
//举例: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses ShellAPI; {ExtractIcon 在其中声明} procedure TForm1.Button1Click(Sender: TObject); var ico: TIcon; i,count,x,y,w,h: Integer; FilePath: string; begin {随便找了个路径, 如果缺失会退出} FilePath := 'C:\Program Files\Macromedia\Fireworks 8\Fireworks.exe'; if not FileExists(FilePath) then begin ShowMessage('文件不存在'); Exit; end; ico := TIcon.Create; x := 10; y := 10; w := 0; h := 0; Repaint; {先算出文件内的图标总数} count := ExtractIcon(HInstance, PChar(FilePath), HICON(-1)); for i := 0 to count - 1 do begin {循环提取图标} ico.Handle := ExtractIcon(HInstance, PChar(FilePath), i); {画出图标} Canvas.Draw(x,y,ico); {下面只是调整显示位置} if w < ico.Width then w := ico.Width; if h < ico.Height then h := ico.Height; x := x + ico.Width + 10; if x >= ClientWidth - w then begin x := 10; y := y + h + 10; end; end; ico.Free; end; end.
//效果图:


本文转载自:http://www.cnblogs.com/del/archive/2008/02/15/1070115.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Inno Setup 制作jar转EXE文件的安装包 之权限、图标、卸载菜单的问题

·怎么给在开始菜单中增加卸载快捷方式? 在相应节点下,添加以下代码 ·怎么自定义卸载图标? (例中卸载图标名字为:uninstallico.ico) 下载一个UpdateIcon.dll放在同一个文件夹下(JAR、脚...

周田
2016/07/08
50
0
玩转Autorun.inf

我们已经知道可以利用Aurorun.inf来指定光盘自动加载的图标和运行的文件,其实Autorun.inf的用处可大了,下面就向大家详细介绍有关Autorun.inf的应用。    了解Autorun.inf    什么是Aut...

浣熊干面包
2009/01/17
0
0
[发布] Photoshop ICO 文件格式插件 V2.0版

    [更新预告] 我正在开发 ICO 插件的 3.0 版本。增加了新的比原来更好的缩放算法。同时将改进一些 UI。预计 2017 年 6 ~ 7 月可以发布。2017 年 6 月 11 日。     【声明】此插件下...

hoodlum1980
2010/12/29
0
0
Python进阶(四十七)-python3使用pyinstaller实现将py文件打包成exe文件

Python进阶(四十七)-python3使用pyinstaller实现将py文件打包成exe文件 前言   py文件通常需要运行在Python编程坏境中,而可执行exe文件更方便。   之前看过若干博文在python2环境下使用...

sunhuaqiang1
2017/04/25
0
0
VBS学习--创建桌面快捷方式

Icons这一可选段定义所有创建在开始菜单和或其它位置 (比如桌面) 的快捷方式。一个例子如下: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TEST DefaultDirName="E:TEST" AppVers...

长征2号
2017/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

74.expect脚本同步文件以及指定host同步文件 构建分发系统文件和命令

20.31 expect脚本同步文件: 在expect脚本中去实现在一台机器上把文件同步到另外一台机器上去。核心命令用的是rsync ~1.自动同步文件 #!/usr/bin/expect set passwd "123456" spawn rsync -a...

王鑫linux
18分钟前
0
0
TypeScript项目引用(project references)

转发 TypeScript项目引用(project references) TypeScript新特性之项目引用(project references) 项目引用是TypeScript 3.0中的一项新功能,允许您将TypeScript程序构建为更小的部分。 通过这...

durban
22分钟前
0
0
爬虫入门

导读 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取...

问题终结者
22分钟前
0
0
ppwjs之bootstrap文字排版:无序列表项不换行

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
29分钟前
0
0
SpringBoot 学习一

本文将从以下几个方面介绍: 前言 HelloWorld 读取配置文件 例子(CURD) 前言 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架...

tsmyk0715
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部