NSIS初学者图文教程三

上接教程二

==================
ISS2NSI v1.0a2
==================
ISS2NSI is a tool for convert Inno Setup script files into NSIS script files.


Usage:
==================
Program:
At the command prompt write: iss2nsi issscript.iss [nsiscript.nsi]
if nsiscript.nsi is no specified then the converted script will be 
saved with the same name of the issscript.iss but with extension .nsi.

NIS Edit Plugin:
1- Close HM NIS Edit.
2- Put hmne_iss2nsi.dll in the plugins directory 
(Default $PROGRAMFILES\HMSoft\NIS Edit\Plugins)
3- Start HM NIS Edit.
4- You will found a new item in the tools menu called "Convert InnoSetup script".

NOTE: Before compile the converted script please check it, because 
complete compatibility is NOT available. I design this tool to convert my
Inno Setup scripts and is not tested with more complex scripts.

The source code is included if you want to contribute to the project
for make the converted script 100% compatible with the original. 
Please send my your modifications to ranametal@blistering.net
Note that this project is a modification to the Inno Setup 3.0.6 
compiler and modifications to the Inno Setup source files are under 
the Inno Setup license (see: src\is-src\is-license.txt). 

Note: the files in the src\is-src directory are unmodified Inno Setup 
source files needed by the Compile.pas unit located in the src directory

---------------------------------------------------------
hmne_iss2nsi.dll 把这个文件放到 NISEdit 目录下的 Plugins 中就可以使用,没有详细测试,不过如果是针对版本的话, Inno Setup 3.0.6 ,估计应该没问题吧。 
ISS2NSI.rar

虽然版本太低,用来从 ISS 的脚本转向学习 NSIS 应该容易点吧。

ISS2NSI 源码下载。

没时间去看看它,只是把它编译成了一个DLL。有时间看看它是什么原理。

ISS2NSI_Src.rar

NISEdit 的增强版本,希望有人来帮帮忙,增加一下函数,否则这个版本也强不到哪里去。

把里面的那些文件放入 NISEdit 的目录中,为了区分原版,程序改名为 VNISEdit。
两个版本可以同时存在,不过你要把 VNISEdit 设为默认编辑器,才可以默认用它来打开。

修正:
1.添加一种菜单的皮肤。
2.增加 NSIS 函数向导功能。(类似 Venis 中的 function 功能)
4.改程序调用帮助时,不要把帮助窗口置顶,因为置顶会令到查看帮助时不能切换会编辑器窗口。

最新功能(区段结构分析)
左图是VNISEdit解释的,右图是Venis分析的。分析对象(makensis.nsi)


全景图:试一下呗,分析速度比 Venis 好很多的。基本上感觉不到视图的闪动。线程实时分析,只要改动代码,视图会立刻作出反应。


请问下面那些问题怎样做的,
1、怎样控制自定义面的“下一步”按钮的可用与不可用
2、怎样为自定义页面上的组件添加Change事件呢
3、我在这个网站里下载的foobar汉化增强版的安装文件里看到页面“MUI_PAGE_COMPONENTS”是怎么做到的,就是怎么把那个页面的左边改为能显示描述内容和隐蔽一些文本

蓝色网际
对于控制下一步按钮来说,有三个阶段分别是:页面初始化之前、页面初始化时、页面要关闭时。不同的阶段对应的插入函数不同。

比如要在页面初始化之前禁止下一步按钮,MUI 界面可以这样

 

 

以下是代码片段:
!define MUI_PAGE_CUSTOMFUNCTION_PRE ComponentPre 
!insertmacro MUI_PAGE_COMPONENTS 

Function ComponentPre 
GetDlgItem $0 $HWNDPARENT 1 
EnableWindow $0 0 
FunctionEnd

colonel
那“2、怎样为自定义页面上的组件添加Change事件呢”,我自定义了一个配置页面,我想用户在完成配置才可激活“下一步”按钮,这个怎么做的呢

蓝色网际
需要给控件加上 NOTIFY 的标记。
例子在我的签名里有。

需要先了解 GetDlgItem 和 EnableWindow 指令的作用。

colonel
这个问题呢
3、我在这个网站里下载的foobar汉化增强版的安装文件里看到页面“MUI_PAGE_COMPONENTS”是怎么做到的,就是怎么把那个页面的左边改为能显示描述内容和隐蔽一些文本 
怎样使“MUI_PAGE_COMPONENTS”中的树目录只能在点选复选框才被选中呢

蓝色网际
这个用 Resource Hacker 调整一下控件就行了。默认的 UI 文件是 NSIS\Contrib\UIs\modern.exe 
到我的签名里下一个特别版的 makensis.exe。

colonel
我不想在组件选择页面中用 onMouseOverSection 来显示 描述 ,如果架设函数可以增加的话,我就想到这个 “回调 onMouseDownSection ”

我是想通过组件目录里的 OnChange 事件来显示

我不懂VC++吖,如果我会的话就可以像MM你那样去改它的代码了

蓝色网际
特别版的就是这样啊,当你点击组件的时候描述区域才会显示或改变。
普通版的只要鼠标移上去就显示了。你没试过吗。

colonel
哦~~~~~~~试到了,原来你是改了onMouseOverSection 回调,对啦,MM你有没有做过 组件的OnChange 事件吗?主要是用在自定义页面上的

是用这个吗?Call shell32.dll::SHChangeNotify

蓝色网际
不知道你说的“组件的 OnChange 事件”是什么意思。
是不是当组件选择更改的时候调用的函数呢?如果是的话那直接使用 Function .onSelChange 就行了。

wq99
各位好:我是新手,
我在看function时,没发现参数的传入。
可能我的思维方式不对。
function Fname
functionend
参数应该怎么传呢?

蓝色网际
NSIS 的函数其实是个假函数,并不能像 C++ 那样传递参数,如果你需要传递参数请使用堆栈。
一个典型的例子请看附录的 Get parent directory。

那如果一个Edit里的内容发生变化,另一个组件也跟关变化,这个Edit 的Change事件去写呢

PS:可能我习惯于使用delphi所以有时说到的组件事件名称与你不一样吧


colonel
那如果一个Edit里的内容发生变化,另一个组件也跟关变化,这个Edit 的Change事件去写呢

PS:可能我习惯于使用delphi所以有时说到的组件事件名称与你不一样吧

蓝色网际
你可以参考一下 NSIS\Contrib\InstallOptions\testnotify.nsi


wq99
File "${LOCATION}\$R0"
$R0是一个文件,结果
说没有这个文件,
File "${LOCATION}\123.exe"
那就可以了。

奇怪,我第一句写错了么?
File "${LOCATION}\${R0}"这样也不对。

蓝色网际
你可以先在资源管理器里看看是否有 $R0 这个文件。一般来说很少有这种不带扩展名的奇怪文件,况且不带扩展名的话很容易被当作目录来处理。

一般来说编译器的报告是正确的,这里有一个测试脚本,你可以试试看。 
test.zip

wq99
啊~对不起啊,我没说仔细。

$R0是变量,是从堆栈里Pop出来的。
即123.exe.
File "${LOCATION}\$R0"
即File "${LOCATION}\123.exe"

 

以下是代码片段:
Push "123.exe" 
…… 
Function InstallOne 
Pop $R0 
DetailPrint $R0 
SetOutPath "$INSTDIR" 
File "${LOCATION}\$R0" 
ExecWait ’"$INSTDIR\$R0"’ 
FunctionEnd 

DetailPrint $R0
是可以打印出 123.exe
改成File "${LOCATION}\123.exe"是可以的。
怎么用$R0就不行了呢?

蓝色网际
File 指令后面的文件必须是编译时当前系统存在的文件,而 $R0 要在编译后才有值当然会出错。变量是运行时才有效的。
如果你想改名的话请使用 File "/oname=目标文件" "本地文件"
oname= 后面的目标文件可以用变量。  


arthur810
为什么我的“安装程序语言”里面是空的
如图,请指教,谢谢
注:WinXP SP2简体中文系统


zhp0083
手动指定一次就会有了 
 

以下是代码片段:
!insertmacro MUI_LANGUAGE "SimpChinese"

sjhome
请问NSIS只能添加一个目录下的文件,怎么样能添加所以目录下的文件呢?怎么设置呢?多谢!
如图所示.
只能添加"Counter-Strike Source"目录下的文件,怎么样能添加"Counter-Strike Source下的bin文件,config文件及所以文件夹"呢? 

蓝色网际
File 可以使用 /r 或 /x 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NSIS安装包制作教程 分为个目录:基础,插件,脚本 NSIS System 插件 NSIS VPatch 3.1插件 NSIS InstallOptions 2 插件 NSIS Modern UI(新式用户界面)插件 NSIS的Modern UI插件 NSIS里特殊符号的表达方法 两组件互斥 NSIS 常用小问题合集 资源替换式的美化包制作方式代码 安装完毕后如何刷新文件关联 教你如何编程调用 NSIS 的插件 NSIS安装程序概要 实现 NSIS 自定义页面中的控件操作代码 如何使用NSIS实现多目录安装设置 如何用NSIS在加入注册表 用NSIS 制作自己的安装程序 bluewind 的 wmp9 nsis安装脚本 NSIS安装脚本简明教程 取得winamp的NSIS脚本的教程 迅雷5.7.3.389 AYU增强版的安装脚本 NSIS制作迅雷安装的脚本 迅雷5.7.2.371 DDR1.5版去广告版源代码说明 NSIS删除安装程序自身 帮助文件中关于静默安装的说明 NSIS实现静默安装的两种方法 nsis的附加任务代码 关于 NSIS 写入注册表的问题 少轻狂制作的Windows优化大师的安装脚本 aipc编写的nsis极点安装脚本 官方 NSIS 插件全集 全方位掌握NSIS的使用 NSIS语言里怎样安装一个.inf文件? 如果要关联某个文件给程序应该怎么做? 如何避免显示解压缩进度框? 关于检测操作系统的问题 在结束页面添加运行程序选项 NSIS的botton二选一如何实现? NSIS灵活应用用逻辑库 NSIS调用inf安装驱动后的卸载问题 NSIS的组件互斥代码 在NSIS中如何禁止一个组件组的父项的点击事件 关于打破 NSIS 的 8192 字节限制的更简单方法 NSIS 自定义页面结合组件选择安装 一个关于组件跟自定义页面的控制问题 如何把安装的卸载程序放到其他目录
NSIS(Nullsoft Scriptable Install System)是一款免费且开源的安装制作工具,能够帮助开发者创建Windows安装程序。下面是关于NSIS图文教程集锦: 1. 下载和安装NSIS:首先需要从NSIS官方网站上下载NSIS的安装包,并按照提示完成安装过程。 2. 创建一个NSIS脚本:使用任意文本编辑器创建一个以.nsi为扩展名的文件,这个文件就是NSIS的脚本文件。在脚本文件中可以定义安装程序的界面、文件的安装位置等。 3. 定义安装界面:NSIS提供了丰富的选项和命令来定义安装界面。你可以添加文本、图标、按钮等元素,以及自定义其位置和样式。 4. 添加文件:使用NSIS的File命令将要安装的文件添加进安装程序中。你可以指定文件的来源路径、目标路径等。 5. 设定安装选项:NSIS的配置命令可以帮助你定义一些安装选项,比如安装路径、创建快捷方式、注册表项等。 6. 定义卸载功能:使用Uninstall命令可以创建卸载程序,方便用户在需要时卸载安装的软件。 7. 编译和测试:完成脚本文件后,使用NSIS提供的编译器将脚本文件编译成可执行的安装程序。然后进行测试,确保安装程序的功能和界面都符合预期。 8. 发布安装程序:将编译好的安装程序发布出去,用户可以下载并安装你的软件。 总结:NSIS是一款功能强大的安装制作工具,通过上述简单的图文教程,你可以学会如何使用NSIS创建自定义的Windows安装程序。这些教程将帮助你快速上手NSIS,并使你的软件安装过程更加专业和用户友好。祝你制作出优秀的安装程序!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值