Inno Setup入门(十四)——替换安装程序和卸载程序的图标
来源:互联网 发布:敏感肌肤如何修复知乎 编辑:程序博客网 时间:2024/05/18 00:21
通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。
首先生成的安装文件图标。这个比较简单,只需要在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入门(十四)——替换安装程序和卸载程序的图标
- Inno Setup入门(十四)——替换安装程序和卸载程序的图标
- Inno Setup入门(十四)——替换安装程序和卸载程序的图标
- Inno Setup入门(十四)——替换安装程序和卸载程序的图标
- Inno Setup入门(十四)——替换安装程序和卸载程序的图标
- Inno Setup 使用插件替换卸载程序图标
- 【Inno Setup】设置控制面板中的程序卸载的图标
- 【Inno Setup】设置控制面板中的程序卸载的图标
- Inno Setup入门(十一)——完成安装后执行某些程序
- Inno Setup入门(十一)——完成安装后执行某些程序
- Inno Setup入门(十一)——完成安装后执行某些程序
- Inno Setup入门(十一)——完成安装后执行某些程序
- Inno Setup入门(十一)——完成安装后执行某些程序
- Inno Setup入门(十一)——完成安装后执行某些程序
- 【转载】Inno Setup入门(二十四)——Inno Setup类参考(10)
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno Setup安装、卸载时判断是否程序正在运行
- linux分支结构if
- Inno Setup入门(十三)——Pascal脚本(2)
- Ilog总结.终结版
- C#分块读取文本数据(FileStream)
- 创建类模式总结篇
- Inno Setup入门(十四)——替换安装程序和卸载程序的图标
- 如何才是优秀的软件工程师?
- 70道经典Android面试题加答案--重要知识点几乎都涉及到了 .
- Android访问外部DB文件
- Inno Setup入门(十五)——Inno Setup类参考(1)
- Java元数据小解
- C#winform 实现从服务器下载
- 使用ANT打包Android应用
- VS2010平台下OpenCV编译和安装