如何在关闭对话框的 Wix 安装程序中停止自定义操作中的进度条

Posted

技术标签:

【中文标题】如何在关闭对话框的 Wix 安装程序中停止自定义操作中的进度条【英文标题】:How Do I Stop Progress Bar in Custom Action in Wix Installer Closing the Dialog Box 【发布时间】:2017-03-02 18:33:34 【问题描述】:

我已经用 C++ 编写了进度条代码,并将该 dll 集成到我在 Wix 中的自定义操作代码中,这是我在 WIX 中为继续按钮编写的,它是自定义操作

<Control Id="proceedButton" Type="PushButton" Text="[Proceed]" Height="62" Width="222" X="90" Y="180" Bitmap="yes">
      <Publish Event="DoAction" Value="RegistrationInfoCustomAction">1</Publish>
      <Publish Event="EndDialog" Value="Return">1</Publish>
    </Control>


 <Binary Id="CustomActionBinary" SourceFile="$(var.RegistrationInfoCustomAction.TargetDir)$(var.RegistrationInfoCustomAction.TargetName).dll"/>
<CustomAction Id="RegistrationInfoCustomAction" BinaryKey="CustomActionBinary" DllEntry="CAProgress"  />

我的 dll 代码在 MSDN 上 - https://msdn.microsoft.com/en-us/library/windows/desktop/aa367525(v=vs.85).aspx

单击“继续”按钮会出现一个带有控制操作进度条的新对话框 -

<Control Id="InfoText" Type="Text" X="50" Y="30" Width="200" Height="17">
 <Subscribe Event="ActionData" Attribute="Text" />

<Control Id="ProgressBar" Type="ProgressBar" X="20" Y="115" Width="330" Height="10" ProgressBlocks="yes" Text="Hello">
 <Subscribe Event="SetProgress" Attribute="Progress" />
</Control>

两个问题是 -

    进度条未填充 100% 进度条填满后,对话框自动关闭。尽管我尝试过使用 Modeless="yes" 和 KeepModeless="no" 的所有组合。

请告诉我应该如何解决这些问题。

【问题讨论】:

【参考方案1】:

只需将下一个对话框的显示标签放在您保留进度条控件的同一个对话框中。 这肯定会奏效。

【讨论】:

您能否提供更多详细信息?

以上是关于如何在关闭对话框的 Wix 安装程序中停止自定义操作中的进度条的主要内容,如果未能解决你的问题,请参考以下文章

WIX安装程序无法正确显示WixUI对话框的自定义图像

如何关闭正在运行的 wix 安装程序?

在自定义对话框中自定义 Wix 安装程序中的图像

Wix静默安装MSI我们可以停止创建目录吗

在卸载期间显示来自 C# 自定义操作的 WiX 对话框

Windows Installer XML (WiX):添加自定义对话框