InstallScript MSI脚本语言采用的事件驱动模式,也就是说,所有的函数调用是安装一定的顺序来进行的。
在你的工程中自己定义的函数都会出现你的函数树上,见上图,你可以单击树上函数名称来编辑或者修改该函数。
事件处理函数(event-handler functions)是不会出现你的函数树上,但是这些函数你的工程也可以使用,当然,此时我们使用的该函数的缺省代码,如果你想修改某个事件处理函数,你可以从事件列表中选择一个事件比如我们选择(Befor Move Data),然后选择一个关于这个事件的函数(比如Begin),然后这个函数的定义就会出现在你的脚本中,在你的脚本中会出现下面的代码:
////////////////////////////////////////////////////////////////////////////// //
// FUNCTION: OnBegin //
// EVENT: Begin event is always sent as the first event during installation. //
////////////////////////////////////////////////////////////////////////////// function OnBegin( ) begin
// TO DO: you may change default non-UI settings, for example //
// You may also perform your custom initialization steps, check requirements, etc. end;
你可以在这个函数执行自己的代码了。
下面我们演示一下如何在这个函数添加一个MessageBox函数。
1)首先将begin和end间的//开头的都删除
2)按下CTRL+I弹出添加函数的向导。
3)在函数的种类列表中,选择\
4)在函数名称中,选择\单击下一步。
5)In the szMsg field-which contains the message you want to display-type \to the Tutorial installation!\
6)In the nType drop-down list-which specifies the type of message box to display-select INFORMATION.
7)Click Finish to paste your function call into the script.
最后,其实就是在你的OnBegin函数中添加了如下的代码:
function OnBegin( ) begin
MessageBox ( \end;
当你修改了你的脚本时,你就要重新编译它,这样,当你运行安装程序的时候,在弹出欢迎对话框之前就会弹出这个消息框。
InstallScript语言包含了大概250个函数用来处理相关的任务,详细内容参见帮助文档。
修改安装界面
处理用户的输入:
在你的安装脚本中,所有处理用户输入对话框的显示只在下面的四个函数中出现OnFirstUIBefore,这个函数里包含了用户第一次安装该程序,在复制文件之前的所有的对话框。
OnFirstUIAfter,这个函数包含用户第一次安装该程序,在复制文件之后所用到的对话框显示
OnMaintUIBefore,这个函数中包含了用户采用maintenance模式安装时,在复制文件之前的所用到的所有的对话框。
OnMaintUIAfter,这个函数中包含了用户采用maintenance模式安装,在复制文件之后所用到的对话框。
对于InstallScript MSI工程来说,其实这里最重要的还是OnFirstUIBefore and OnMaintUIBefore两个函数,用户无论是第一次安装还是maintenance安装,对话框显示都在这两个函数中,OnFirstUIBefore函数缺省的情形应该像下面这样吧。
Dlg_Start:
// beginning of dialogs label Dlg_SdWelcome: szTitle = \szMsg = \
nResult = SdWelcome( szTitle, szMsg ); if (nResult = BACK) goto Dlg_Start;
Dlg_SdCustomerInformation: szMsg = \szTitle = \
nResult = SdCustomerInformation( szTitle, szName, szCompany, nUser ); if (nResult = BACK) goto Dlg_SdWelcome;
关于InstallShield8.0的入门就简单介绍到这里,关于安装程序的制作,以后有机会我会写一些更加详细的帮助文档,希望和大家多交流。