注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

Inno Setup入门(十四)——替换安装程序和卸载程序的图标  

2011-02-20 11:14:42|  分类: Inno Setup |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。

Inno Setup入门(十四)——替换安装程序和卸载程序的图标 - Castor - 趁年轻,多折腾~~

 

    首先生成的安装文件图标。这个比较简单,只需要在Setup段中添加相应的语句即可:

SetupIconFile=jiong.ico

该语句指定了输出文件的图标,注意如果图标不是和脚本在同一目录下的话,需要提供完整的路径。

然后是卸载程序的图标。事实上,把包含前面替换语句的程序编译之后,将其安装,会发现卸载程序其实也安装程序的图标一样被替换了,即安装程序自动实现了图标的替换工作。现在的问题是,如果想和安装的图标不一样,该如何处理?实现方法如下:

1.准备好图标文件,和脚本放入同意目录下。

2.使用一个名为UpdateIcon.dll的插件

3.添加Code段,代码如下:

[code]

//插件函数用法

//参数: 句柄(插件错误对话框的父句柄), exe文件完整路径名称, (exe文件中要替换的)图标资源名称, 图标文件的完整路径名称, (exe中要替换的图标资源所在)语系

//返回值: 成功 = Tr, 失败 = False

function UpdateIcon(const hWnd: Integer; const exeFileName, exeIcon, IcoFileName: String; wlangID: DWORD): Boolean;

external 'UpdateIcon@files:UpdateIcon.dll stdcall';

 

//替换卸载程序的图标

function UpdateUninstIcon(const IcoFileName: String): Boolean;

begin

       //要替换图标的exe文件路径名称留空,则插件会自动替换掉Inno卸载程序的图标,其它参数类似!

       Result:= UpdateIcon(MainForm.Handle, '', '', IcoFileName, 0);

       //替换卸载图标

end;

 

procedure CurStepChanged(CurStep: TSetupStep);

var

  sIcon: String;

begin

       //注意: 替换卸载程序的图标,必须是在卸载程序生成之前!

       //安装图标与卸载图标的格式与大小一致,否则可能会导致卸载程序出错!

       if CurStep=ssInstall then

       begin

              sIcon:= ExpandConstant('{tmp}\uninstall.ico'); //定义卸载图标

              ExtractTemporaryFile(ExtractFileName(sIcon)); //释放卸载图标

              //要替换图标的exe文件路径名称留空,则插件会自动替换掉Inno卸载程序的图标!

              UpdateUninstIcon(sIcon);//替换卸载图标

  end;

end;

    编译之后就可以了。下面是输出文件和安装好之后的目录:

Inno Setup入门(十四)——替换安装程序和卸载程序的图标 - Castor - 趁年轻,多折腾~~

 安装文件

Inno Setup入门(十四)——替换安装程序和卸载程序的图标 - Castor - 趁年轻,多折腾~~

 安装目录

  评论这张
 
阅读(9509)| 评论(6)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016