我正在与维克斯安装具有“启动应用程序安装后”复选框。 我们的目标是对settting的复选框,以及对取消设置复选框的反应。如果该复选框设置,我需要运行的应用程序。如果该复选框没有设置,我需要运行相同的应用程序,但用命令行参数。

下面是我的维克斯脚本的一部分。

<CustomAction Id="StartConfigManagerOnExit"
              FileKey="ParamsShower.exe"
              ExeCommand=""
              Execute="immediate"
              Impersonate="yes"
              Return="asyncNoWait" />
<CustomAction Id="StartUpgradeConfigOnExit"
              FileKey="ParamsShower.exe"
              ExeCommand="/upgrade"
              Execute="immediate"
              Impersonate="yes"
              Return="asyncNoWait" />
<UI>
    <Publish Dialog="ExitDialogEx"
             Control="Finish"
             Order="1"
             Event="DoAction"
             Value="StartConfigManagerOnExit">LAUNCHAPPONEXIT = 1</Publish>
    <Publish Dialog="ExitDialogEx"
             Control="Finish"
             Order="1"
             Event="DoAction"
             Value="StartUpgradeConfigOnExit">LAUNCHAPPONEXIT = 0</Publish>
    <Publish Dialog="ExitDialogEx"
             Control="Finish"
             Event="EndDialog"
             Value="Return"
             Order="999">1</Publish>

    <Dialog Id="ExitDialogEx"
            Width="370"
            Height="270"
            Title="[ProductName] Setup">
        <Control Id="LaunchCheckBox"
                 Type="CheckBox"
                 X="135"
                 Y="190"
                 Width="220"
                 Height="40"
                 Property="LAUNCHAPPONEXIT"
                 Hidden="yes"
                 CheckBoxValue="1"
                 Text="Launch an app">
           <Condition Action="show">NOT Installed</Condition>
        </Control>
    </Dialog>
    <InstallUISequence>
       <Show Dialog="ExitDialogEx"
             OnExit="success" />
    </InstallUISequence>
    <AdminUISequence>
        <Show Dialog="ExitDialogEx"
              OnExit="success" />
    </AdminUISequence>
</UI>

这是安装开始时LaunchCheckBox设定该应用程序。不过,这并不在壳体的复选框未被设置运行它。

有帮助吗?

解决方案

我已经找到了答案。貌似复选框属性不等于0时,选中。简单地改变条件 “LAUNCHAPPONEXIT = 0” 与 “NOT LAUNCHAPPONEXIT” 解决的情况。

请默认:

<Property Id="LAUNCHAPPONEXIT" Value="1" />

然后校正条件(具有的Sascha的评论校正的):

<Publish Dialog="ExitDialogEx" Control="Finish" Order="1" Event="DoAction" Value="StartConfigManagerOnExit">LAUNCHAPPONEXIT</Publish>
<Publish Dialog="ExitDialogEx" Control="Finish" Order="1" Event="DoAction" Value="StartUpgradeConfigOnExit">NOT LAUNCHAPPONEXIT</Publish>

其他提示

一个复选框没有值在所有未选中时,因此而不是使用1/0符号可以简单地使用

LAUNCHAPPONEXIT

Not LAUNCHAPPONEXIT

您需要添加初始化自定义操作你的财产,

<CustomAction ID="InitLAUNCHAPPONEXIT" 
              Property="LAUNCHAPPONEXIT" 
              Value="0" 
              Return="check"/> 

,然后显示退出对话框之前将其添加到InstallUISequence,或者干脆你的属性添加到产品<Property Id="LAUNCHAPPONEXIT" Value="0" />

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top