#1 Progress Dialog with Detailed Progress


This is a progress dialog fragment. It displays a progress bar, what operation is currently in progress and the estimated time until completion. I tried to set it up so that it was self contained and easy to reuse in other projects, but as I only have one project right now I don't know if I have succeeded.

They way I'm using it is by putting <FragmentRef Id="ProgressDialog"/> in my <Product> and <Show Dialog="Progress" After="CostFinalize"/> in my <UI>. Don't ask me why I picked CostFinalize, I can't remember.

You will need a dialog called Cancel that the cancel button can call or the package will cause an error. You may also need a DefaultUIFont property.

If you want an icon in the upper left corner of the dialog, add <Binary Id="InstallingIco" src="path\\to\\some\\icon.ico"/> to your <UI>. You may have to do this for the dialog to compile, I'm not certain.

I made it by darking Office 2000 and then hacking it up to do what I wanted. It took a long time to get correct since I didn't understand the event system when I started.


  • Kalle Olavi Niemitalo

    Logged In: YES

    There seem to be a few problems with this example.

    1. The UIText for TimeRemaining does not display "[1]", which
      would expand to the number of minutes remaining. Something
      like "{[1] minutes and }[2] seconds remaining" should be used.

    2. There is a typo in the ScriptInProgress
      subscription: "ScriptInProgess". However, when I tried to
      subscribe the Text attribute to ScriptInProgress, the text
      changed to just "1" or "0", rather than to the string stored in
      the UIText table. The only way I could get a usable effect
      was by subscribing the Visible attribute to ScriptInProgress
      and placing a constant string in Text. The MSI SDK does not
      actually say which attribute of the Text control should
      subscribe to ScriptInProgress.


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks