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

时间:2017-03-02 18:33:35

标签: wix windows-installer progress-bar custom-action wix3.7

我用C ++编写了Progress条形码,并在Wix中的自定义操作代码中集成了这个dll,这是我在WIX中为Proceed Button编写的,它是自定义操作

<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

单击Proceed按钮,将出现一个带有控制操作进度条的新对话框 -

<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>

两个问题是 -

  1. 进度条未填写100%
  2. 进度条填充后,对话框会自动关闭。即使我尝试使用Modeless =“yes”和KeepModeless =“no”它的所有组合。
  3. 能告诉我如何解决这些问题。

1 个答案:

答案 0 :(得分:1)

只需将Next Dialog的show标记放在您保持Progress栏控件的同一Dialog中。 这肯定会奏效。