NSIS 或 Inno Setup打包软件如何得到当前文件名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSIS 或 Inno Setup打包软件如何得到当前文件名相关的知识,希望对你有一定的参考价值。

1.NSIS 或 Inno Setup打包软件如何得到当前文件名?
2.复制一份包中已经解压的exe并以获取到的文件名命名;
补充:并不是打包时定义的名称,而是随便修改后的名称,例如生成的是setup.exe,我改成setup_kusila.exe 获取kusila并以解压出来的test.exe复制生成test_kusila.exe

我用inno setup打包软件遇到的问题

1、默认选中我同意许可协议按钮?
用inno setup打包的软件在安装过程中,如果询问了用户是否接受“许可协议”,默认情况下的选择是“我不接受协议”。
怎样编写脚本,才能实现默认情况下的选择是“我接受协议”?
试过下面的代码,貌似现在没用了。
[code]
// 默认选中我同意按钮
procedure InitializeWizard();
begin
WizardForm.LICENSEACCEPTEDRADIO.Checked := true;
end;

2、设置隐藏、只读属性?
怎样编写脚本,实现安装包在释放某个文件的时候,将此文件隐藏起来?如何设置只读属性?

3、提示正在释放的是什么组件?
怎样编写脚本,是安装包在释放文件的时候,能够提示正在安装的是什么文件?同样卸载的时候呢?

4、不用插件替换默认的卸载图标?
怎样才能不使用插件(这种方法需要编写[Code]段),而用inno setup自身实现更改默认的卸载图标呢?
一种方法是,讲卸载图标也打包进安装包,然后在IsTool 中依次选择工程→安装选项→卸载,在“显示图标”上选择已经打包进去的卸载图标,然后在“图标索引”里面再选择合适的卸载图标;
或者可以用IsTool,点击在左边的“图标[Icons]”,找到卸载那一项,双击或者右键,在“图标”选项卡中依照上面的方法分别设置“图标文件”、“图标索引”。
但是这样卸载图标也将被释放到安装目录,而且不能删除。有没有办法绕过这些问题呢?

5、打包时相同文件打包一次,而释放的时候可以释放到不同的文件夹?
如果一个软件,在安装的时候,同一个文件要被释放到不同的文件夹中去。
例如迅雷5.9.7.1062的安装目录,在C:\Program Files\Thunder Network\Thunder\Skin2里面有,而在C:\Documents and Settings\All Users\Application Data\Thunder Network\thunder_6567C672-0056-44C8-9863-4E346081C6E8_\Skin2里面也有一模一样的文件。
在inno setup打包的时候,可以在Source中,用flags里面的一个参数external(外部文件),意思是告诉 Inno Setup 不要编译 Source 参数指定的文件到安装程序文件中,改为从分布的媒介或用户系统中复制。
这样做出来的安装包会比不用这个参数external的小很多。
那么这个参数到底是怎样用的?能不能给一个实例?

这是我在学习inno setup的时候遇到的问题,供大家学习交流。多谢大家的支持啦!我的QQ632689181。
梦想吧技术论坛

* 【全新技术发布】我本布衣装机常用软件光盘——v9.0(官方加网盘下载)

收藏 分享 评分

回复 引用

订阅 TOP

Dreamcast

* 发短消息
* 加为好友

Dreamcast 当前离线

UID
26472
帖子
32
精华
0
积分
19
D8币
2
阅读权限
10
在线时间
60 小时
注册时间
2009-3-23
最后登录
2009-12-1

查看个人网站查看详细资料

D8新人

2#
发表于 2009-9-30 04:24 PM | 只看该作者
本帖最后由 Dreamcast 于 2009-9-30 04:25 PM 编辑

1、我一直在用,5.3.4版上测试有效
2、请看帮助,Files 段的 Attribs
3、安装时不是会一个个显示吗!?
4、何必执著于一个图标呢......要么放图标,要么用插件:http://www.dreams8.com/thread-9365-1-1.html
5、最简单的就是复制一份文件,改为如:A,1.dll,A,2.dll,Files 段写2行,然后用 DestName 重命名为 A.dll 释放到不同的目录,相同 MD5 的多个文件打包后应该只占用一份的体积,至少 WinRAR 是这样,呵呵。
参考技术A 下面是 Inno的方法,^_^

ExtractFileName(ParamStr(0))

这样,就是你要的安装程序文件名了,inno的,呵呵

Rename
function RenameFile(const OldName, NewName: string): Boolean;本回答被提问者采纳

Inno Setup 打包及签名指南

Inno Setup 是一个免费的 Windows 安装程序制作软件,十分简单实用的打包小工具,可以按照我们自己的意愿设置功能。本文将介绍如何使用 Inno Setup 打包,并使用 wosigncodecmd 设置签名。

一、下载安装 Inno Setup

官网网址:​​https://jrsoftware.org/isdl.php​

按自己需求安装

二、打包

1、创建新项目

Inno

Inno

2、填写应用名称和应用版本等信息

Inno

3、设置应用文件夹权限,默认即可

Inno

4、选择主文件及其所在目录

Inno

5、设置应用文件类型和扩展信息,默认即可

Inno

6、设置桌面和开始菜单的快捷方式

Inno

7、设置应用基本信息

Inno

8、设置安装包安装方式

Inno

9、设置安装语言

Inno

10、设置安装包输出路径

Inno

11、设置编译指令

Inno

12、选择是否编译,这一步点否

Inno

13、设置签名工具,名称设置为 wosigncodecmd,签名命令根据实际情况设置(示例中的签名命令使用 wosigncodecmd,命令行为: F:\\Users\\xiaosp\\Desktop\\签名工具\\WoSignCode\\wosigncodecmd.exesign /default /file $f)注意将wosigncodecmd.exe路径改为实际路径。

Inno

Inno

Inno

Inno

14、添加签名命令 Signtool=wosigncodecmd

Inno

15、编译

Inno

16、指定名称保存iss,等待编译签名过程完成即可!

欢迎访问沃通官网申请代码签名证书​​[1]​​,如有其他疑问,可咨询沃通技术支持获取指导。

参考

  1. ​^​​代码签名证书​​https://www.wosign.com/Products/code_signing.htm​

以上是关于NSIS 或 Inno Setup打包软件如何得到当前文件名的主要内容,如果未能解决你的问题,请参考以下文章

静默安装的Inno Setup

Inno Setup 5 安装包制作!reg2iss,Inno Setup 问题。Inno Setup 怎么批量导入reg文件,(像nsis

如何移除Inno Setup创建的口令

想做一个支持升级模式的安装程序,用inno setup,请问怎么做吗?

inno setup打包工具的使用问题?

Inno Setup软件如何把多个安装包程序打包在一起,并一起运行呢?我看你的问题你会了吧,谢谢