作者:fbysss
Blog:blog.csdn.net/fbysss
声明:本文章由fbysss原创,转载或引用请注明引用地址。
我们可以看到,很多软件在安装完成之后,可以有一些选项,比如“查看ReadMe”,“运行程序”等等,这是怎么做到的呢?
关键词:OnMoved、SdFinish
1.InstallShieldX脚本中有一个OnMoved事件。这个事件在需要安装的文件拷贝完成之后触发;
2.SdFinish是一个标准对话框函数,函数原型为SdFinish ( szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2 );从参数中可以发现,这里只提供最多两个选项。
实例代码如下:
function OnMoved()
STRING szTitle;
STRING szMsg1, szMsg2,szOpt1,szOpt2;
BOOL bvOpt1, bvOpt2;
STRING szApplicationPath,szApplicationCmdLine,szCmdLine;
begin
if (MAINTENANCE) then return 0;endif;//如果不是安装状态,比如修改/卸载状态的时候,则不执行。
szTitle = "安装完成";//对话框的标题
szMsg1 = "%P 安装已经完成.\n" +
"请根据需要选择下面的选项.";//%P为软件产品名称
//如果要单独在这里设置产品名称,在之前使用如下两句
// szProductName = "某某软件";
// SdProductName (szProductName);
szMsg2 = "点击‘完成’按钮完成%P安装.";
szOpt1 = "阅读自述文件";//如果这里为空,则表示只有一个选项
szOpt2 = "运行程序";
SdFinish (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
if (bvOpt1) then
LaunchApp ('notepad.exe',TARGETDIR ^ "\readme.txt");//LaunchApp 用来运行某外部程序
endif;
if (bvOpt2) then
LaunchApp (TARGETDIR ^ "\App.exe","");
endif;
end;