彩票走势图

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

翻译|使用教程|编辑:况鱼杰|2019-11-18 13:35:58.800|阅读 2028 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

    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" And
PROGRAMFILETOLAUNCHATEND<>"" And NOT Installed And
NOT 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 box
szOpt1 = "Launch %p"; // %p expands to product name
SdFinish(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微信公众号☟☟☟,了解产品的最新动态及最新资讯。

1561953111.jpg


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP