Quick Start

The Software Update Wizard lets you add 'update over the web' functionality to your applications with literally a single line of code.

It works with 32-bit and 64-bit Windows 10, Windows 8.x, Windows 7, Windows Vista, Windows Server 2008 / 2003, Windows XP and Windows 2000.  It can be integrated with any development language capable of launching a Windows process using ShellExecute() or calling a Windows 32-bit dll function.  It requires no server-side processing and works with any web server.

If you have just installed the developer version (trial or registered) you can experience a simple update now, using our "HelloWorld" example - please click here for more information.

Your application simply calls a function from our 'wuw4.dll' DLL, which is a simple (non-COM) 32 bit Windows DLL that does not need COM registration.  Alternatively, you application can launch our wuwstub.exe program, which then loads wuw4.dll and calls its exported function with the script url it receives as a command line argument.  A single line of code in your application is all it takes to initiate an update check...

// Sample call to wuw4.dll from your application

// Sample launch of wuwstub.exe from your application
ShellExecute(NULL, "open", "wuwstub.exe", "http://www.myserver.com/updatescript.txt", NULL, SW_SHOW);

Important note for .Net developers: (click to expand)

(See here for other programming language syntax examples and here for more information on using the Software Update Wizard in a 64 bit environment.)

A simple update can be implemented with a 3 line update script on your web server, although an update script can include many considerably more powerful update commands too:


Just upload this script as a text file to the 'updates' folder on your web server, along with the new version of MyApp.exe and your updates are ready to go.  The only processing requirement on your server is the ability to respond to standard http: protocol requests.  No additional server-side processing is required as all the logic is executed by the Software Update Wizard on the client computer.

The Software Update Wizard fully supports updates on Windows 10, Windows 8.x, Windows 7, Vista, Windows Server and also in XP environments where the logged in user does not have rights to 'Program Files' or other sensitive folders. It also supports automatic updates in a Windows Terminal Services environment.

The Software Update Wizard adds an overhead of less than 300K to your installer if you use our supplied wuwinstaller.exe installer program (which can be run completely silently, using the "/S" command line argument).

More information on scripts.. (Click to expand)


You can use the Software Update Wizard Project Manager utility to help develop and test your Software Update Wizard scripts, along with the third party editor macro files we have supplied with the Software Update Wizard.

The Software Update Wizard does much more than just alert the user of an update. It:

Software Update Wizard - 1-pass versus 2-pass mode

The Software Update Wizard normally handles all the interface elements associated with processing updates. Under this mode of operation you can either accept its default message texts (which are in PowerProgrammer English!) or you can completely customise the texts yourself using language files. (Language files also allow you to provide messages in users' native languages based on their Windows Regional Settings.) Either way, all you do from your application is give the Software Update Wizard the url of the update script and it does the rest. This is called '1-pass mode'.

However, if you would prefer to handle the interface with the user from within your own application the Software Update Wizard can also operate in 2-pass mode. In this mode, the first call to the Software Update Wizard causes it to download and parse your update script, but instead of actioning the updates it will generate an XML file containing the updates which apply to the user's platform and current software versions. You can then post your interface and make a second call to the Software Update Wizard to make it action the selected updates your interface has determined. The Software Update Wizard then handles the update without showing its interface.  Click here for more information on 2-pass mode.

Documentation Roadmap

Here is our recommended route through the documentation.  Please note that only selected help pages are included in our route to get you started with the Software Update Wizard.  Please also see the Help Contents of this help file for the full documentation available to you.

First Principles.. more.. More information on the Software Update Wizard's capabilities.
Architecture This topic describes the architecture of the Software Update Wizard and explains exactly how it works from a conceptual perspective, so that you understand the implementation and deployment options available.  See also our briefing notes on using the Software Update Wizard in a 64 bit environment.
Installation This section explains how to deploy the Software Update Wizard within your own application installers.
A Worked Example This section takes you through integrating the Software Update Wizard into your application.
It then describes the sequence of what happens during an update, both from the user's perspective and also from a technical perspective.
Example update scripts This section provides numerous examples of Software Update Wizard scripts together with a detailed explanation of how each one works. 
2-Pass Mode This section provides help for handling the interface elements of software updates in your own application, rather than allowing the Software Update Wizard to handle the interface with the user.
Keywords: Every Software Update Wizard script keyword described in detail, with examples of usage.
Upgrading from V3 to V4 For users of earlier versions of the Software Update Wizard, this section explains that V3 and V4 can coexist if required, and also provides guidance for how you can use V3 to smoothly update your users Software Update Wizard versions to V4.
Windows 10 Controlled Folder Access This page provides the latest information on the Controlled Folder Access feature introduced from Windows 10 version 1709.  At the time of writing there are NO issues and no actions required for the Software Update Wizard to operate successfully under Controlled Folder Access.
Working with Language Files The Software Update Wizard can (optionally) support updates in multiple languages, so that you users see advices and prompts in their own language.  This section shows you how to implement multi-language updates.
Campaign Manager In addition to providing automatic software updates, the Software Update Wizard can also serve marketing campaigns to your users using a similar approach as update scripts.  Your Campaign Manager script can control how often users see your campaigns, when they run from and whether the user has the option to decline the campaigns.
Troubleshooting A big effort has been made in this version to provide developers with the maximum amount of troubleshooting information and feedback.  This section explains how to troubleshoot script and deployment issues.
Frequently Asked Questions (FAQ) This is the FAQ page - a collection of hints and tips which you are recommended to read!

Getting Technical Support

Firstly, please read our problem solving help page and FAQ page as solving your own problem is frequently the fastest solution!

However, we are very happy to provide technical support for our software should you need it.  If you require our help or you have suggestions for improving the Software Update Wizard, please email us  at support@PowerProgrammer.co.uk.  We promise to reply as promptly and helpfully as possible to every message received!

(Please include the text "Software Update Wizard" in your subject text in order to guarantee that your email passes through our spam filters!)


When you request support we will be able to help you most effectively if you give us as much information about the specific problem you are experiencing as you can! So if possible, please include the following (if relevant) in your email: