打包软件InstallShield提示和技巧:安装后如何启动应用程序

安装的一般要求是,安装完成后启动安装的应用程序,通常基于用户在类似于以下内容的完成对话框上的复选框选择。本文将会展示安装基本MSI和InstallScript项目类型后如何启动应用程序。

    InstallShield是构建Windows安装程序和MSIX包并直接在Microsoft Visual Studio中创建安装的最快速最简单的方法。借助InstallShield,您可以快速适应行业的变化,更快地进入市场并提供引人入胜的客户体验。    

InstallShield最新试用版


    安装的一般要求是,安装完成后启动安装的应用程序,通常基于用户在类似于以下内容的完成对话框上的复选框选择。

1.jpg

    以下各节描述了安装基本MSI和InstallScript项目类型后如何启动应用程序。

Windows Installer项目

    对于Windows Installer项目,基本思想是在SetupCompleteSuccess对话框的完成按钮上调用带有控制事件的启动EXE自定义操作。

    对于Basic MSI项目,您可以在Project Assistant的Installation Interview页面中启用此类复选框和操作。您首先需要选择的问题是,是否要为用户提供安装完成后启动应用程序的选项接下来,浏览要启动的可执行文件。在项目助手中,可执行文件必须已经在项目中; 在此示例中,名为sample.exe的文件已添加到目标为INSTALLDIR的组件中。

2.jpg

    当选择是并浏览到可执行文件时,InstallShield会在项目中添加一个称做IS_LAUNCH_MY_PROGRAM_PLEASE的即时模式启动EXE自定义操作。

3.jpg

    该动作未出现在序列中,之后在自定义动作视图中就不会定义安装UI序列,安装执行序列和相关设置。相反,该操作由附加到SetupCompleteSuccess对话框上的完成按钮(内部称为确定按钮)的DoAction控件事件启动。您可以在对话框视图中SetupCompleteSuccess的行为节点下查看控件事件的属性。

4.jpg

    DoAction控件事件具有附加的条件LAUNCHPROGRAM,其中LAUNCHPROGRAM是与SetupCompleteSuccess上的CheckLaunchProgram复选框控件关联的属性。如果用户在运行时选中该复选框,则将设置LAUNCHPROGRAM,并将运行启动可执行文件的自定义操作。如果用户未选中该复选框,则条件将失败,并且不会启动可执行文件。

    提示:默认情况下,LAUNCHPROGRAM属性没有值,因此默认情况下,运行时该复选框会取消选中。要指定最初应选中此复选框,可以将LAUNCHPROGRAM添加到值为1的Property Manager视图中。

    选择添加复选框,然后重新构建并运行安装后,SetupCompleteSuccess对话框如下所示。

截图未命名.jpg

(如果您在对话框编辑器中查看SetupCompleteSuccess对话框,您会注意到启动该应用程序的选项受两个控件的支持,这两个复选框控件名为CheckLaunchProgram,而文本控件名为LaunchProgramText。具有两个控件的原因是该复选框控件不支持Transparent属性,因此该复选框控件的文本将在白色对话框背景位图上显示为灰色背景。文本控件确实支持Transparent属性,因此该选项由一个复选框,没有文本和一个文本控件表示。)

    使用户能够选择是否启动应用程序的复选框控件和文本控件具有以下复合控件条件:

SHOWLAUNCHPROGRAM="-1" AndPROGRAMFILETOLAUNCHATEND<>"" And NOT Installed AndNOT ISENABLEDWUSFINISHDIALOG

    除其他事项外,该条件还确保该复选框仅针对首次安装(未安装)出现,而不针对维护操作或卸载出现。一种可能的改进是通过添加类似于&ProgramFeatureName = 3的条件,仅在选择了包含应用程序的功能时才启动该应用程序。

InstallScript项目

    对于InstallScript项目,您可以通过修改OnFirstUIAfter事件处理程序来添加启动应用程序的选项。默认情况下,OnFirstUIAfter事件处理程序包含一个if语句,该语句检查是否需要重新启动以及是否包含UpdateService支持,并显示适当的完成对话框。 可能的完成对话框是SdFinishReboot,SdFinishUpdateEx和SdFinish。在大多数情况下,SdFinish是您要修改的对话框。

    在OnFirstUIAfter的默认实现中,显示SdFinish的if语句的分支如下所示:

SdFinish(szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);

    要启用带有适当文本的复选框,并在用户选中该复选框时启动您的应用程序,您可以修改if语句的分支,使其显示如下:

bvOpt1 = TRUE; // enable check boxszOpt1 = "Launch %p"; // %p expands to product nameSdFinish(szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);if (bvOpt1) then LaunchApp(TARGETDIR ^ "sample.exe", "");endif;

(实际上,对于szOpt1,应使用字符串表条目而不是硬编码字符串,以简化安装项目的本地化。)

    在运行时,对话框如下所示。

7.jpg

    与Windows Installer项目一样,一项增强功能是确保使用FeatureIsItemSelected仅在安装了包含应用程序的功能时才显示该复选框。

推荐文章:

MSI功能和组件的使用

从自定义操作写入日志文件PDF文档


如果您想要购买正版授权InstallShield,可以联系在线客服>>咨询相关问题。

关注慧聚IT微信公众号了解产品的最新动态及最新资讯。

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月15日
下一篇 2019年10月15日

相关推荐

发表回复

登录后才能评论