The Web Update Wizard FAQ...

Web Update Wizard - FAQ

Please be sure to read the FAQ in the Web Update Wizard help file, which contains the latest FAQ information.

Download the latest Web Update Wizard from here.



How does the wuw.dll DLL or wuwstup.exe application communicate with the NT Service?

 

How does the wuw.dll DLL or wuwstup.exe application communicate with the WuW.exe Application?

My customers don't use Internet Explorer.  Is that a problem?

 

Is it possible to use the Service application without the service having to run all the time?

 

The Web Update Wizard won't run under NT4!

 

What is the Web Update Wizard written in?

Can I have the source code?

How do I advise my users if their software is actually already up to date?

How is the Web Update Wizard Licensed?

My update script is not working!  How do I debug it?

Will Web Update Wizard run an exe program to complete the update? In other words, can I create a patch that runs as an exe that will update my program and have Web Update Wizard run that exe? Or will your update program only work with zipped files?

My application cannot be exited just by clicking the Close (X) button the application window, as it also has the system tray icon. To exit it, my users do a right-click on the system tray icon and then exit. I could not find a way to terminate the process for my application given the window title name. Is there a way to do that?

What kind of error message would a user see if the firewall prevents the user from using the Web Update Wizard?

Do you have any documentation on what the user should do in order to make the Web Update Wizard a permitted application?

After my program updates, does the user's system have to reboot?

Our clients purchase yearly support subscriptions which give them access to program updates. We need to be able to restrict access to updates to only those clients who have active support subscriptions.

Does the Web Update Wizard work over a LAN?


Q: How does the wuw.dll DLL or wuwstup.exe application communicate with the Windows Service?

Through a named pipe.  The name of the pipe is '\\.\pipe\webupdate'.

If you are familiar with using named pipes you can easily omit the wuw.dll / webstub.exe component and instead call the named pipe directly.  The named pipe supports read operations from the client only.  That is to say, your client can write the URL of the script update file to the pipe, but cannot read anything from the pipe.

If writing to the pipe directly, you may need to pass the path to the folder which contains your running executable as well, so that the service can temporarily close the executable down prior to updating it.  In this case, you should append the path to the executable's folder to the URL, separated by a '|' character, as in the following example:

http://www.yourserver.com/webupdate/webupdate.txt|c:\program files\YourAppFolder\

Note that the URL must start "http://....".

Top


Q: How does the wuw.dll DLL or wuwstup.exe application communicate with the WuW.exe Application?

It uses the Windows API ShellExecute to launch WuW.exe as a Windows application.  It passes the URL of the server update script and the folder of the application which is hosting the dll/wwwstub.exe application.

If you wish to launch the WuW.exe directly from your application, thereby obviating the need for the Web Update Wizard DLL, you should simply call it using the following example syntax:

wuw.exe http://www.yourserver.com/webupdate/webupdate.txt|c:\program files\YourAppFolder\

That is,  pass the URL of the update script (including the "http://" part), plus a '|' character, plus the folder which is hosting your running application file, to the wuw.exe program as its command line argument.

Top


Q: My customers don't use Internet Explorer.  Is that a problem?

No, as long as IE 5.5 or later is installed.  If they access the internet through a proxy server than that must be configured either in IE or via the Control Panel / Internet Options applet.

Top

Q: Is it possible to use the Service application without the service having to run all the time?

This question only applies to machines running Windows NT or later.

The service application normally runs in the background and consumes minimal processor time except when it is processing an upgrade.

However, if you really want to only run it on demand, you will need to change the service's startup property to 'Manual' in the Control Panel / Services applet and then add the following steps to your application's code:

  1. Install the service, using the '-i' command line argument of the Web Update Wizard service application WebUpdateSvc.exe.
  2. Start the service using the '-s' command line argument of the Web Update Wizard service application WebUpdateSvc.exe.
  3. Call the WebUpdate() method of the Web Update Wizard DLL.
  4. Uninstall the service using the '-u' command line argument of the service Web Update Wizard application WebUpdateSvc.exe.

Alternatively you could use the Windows 9x implementation of the Service, wuw.exe, which contains the same functionality as the Service.  The only exception is that the Service runs in the SYSTEM security context, whereas the wuw.exe application runs in the security context of the logged on user.  This may or may not be an issue for you, depending on whether the logged on user has sufficient security rights to perform the file updates in your server update script.

Top


Q: The Web Update Wizard won't run under NT4!

The Web Update Wizard will run under NT4, but you will need to update some of the Windows files:

You will need to install the latest service pack (6a).

You will need to install Internet Explorer 5 or later, because the Web Update Wizard uses the WinInet.dll and associated dlls installed from this release of Internet Explorer or later.

You will need an updated version of MFC42.dll, as the version installed by the original NT installer is too old.  (N.b. It may have already been updated by another program's installation program.  We do not include the updated version of MFC42.dll in our installer in order to minimise download size and because the majority of users already have an updated version.  However, if you need to give your users an updated version of MFC42.dll you can download an installer from the PowerProgrammer web site at the following URL:

http://www.PowerProgrammer.co.uk/kick/mfcupdate.exe

Please note that you should update your NT4 machine prior to installing the Web Update Wizard.  If you have already installed the Web Update Wizard you should uninstall it, update NT and then reinstall it.

If you see an error message with the Web Update Wizard complaining about missing or incorrect version WinInet.dll then you need the Internet Explorer updates. 

If you see an error box which says "The ordinal 6877 could not be located in the dynamic link library MFC42.DLL" then you need the MFC Update file.
Top

Q: What is the Web Update Wizard written in?

Visual C++ Version 6.0 with the Microsoft Foundation Class libraries.

Top


Q: Can I have the source code?

The Web Update Wizard is a commercial software product.

You do not actually need the source code to productively use the Web Update Wizard.

If you have enhancement requests or have found a bug we would love you to let us know so that all Web Update Wizard users can benefit from the additions.  Data Perceptions / PowerProgrammer listens to its customers and tries hard to meet their aspirations for the product.  You can contact us.

Top


Q: How do I advise my users if their software is actually already up to date?

If no update is applicable the default behavior of the Web Update Wizard is to remain completely silent - i.e. to give no visual feedback.  This behavior is (believed to be) appropriate in situations where your software automatically checks for updates as it launches - i.e. without the user clicking a button or selecting a menu option.

If you prefer to require the user to click a button or select a menu option to initiate an update check, you can cause a Web Update Wizard message box to appear with your own message saying there are no updates available by appending a block to the end of your server script file, as shown in the sample script file below:

[7]
Filename=/prophecy/prophecy.exe
Message=This update will upgrade your Prophecy software to version 2.0
TargetFolder=C:\Program Files\Prophecy

[99999]
Message=You already have the very latest version of Prophecy!

In this instance, if the user does not have update [7] they will be given it the first time they check for updates.

However, the next time they check they will receive the message box with the text shown in the "Message=" line for the section starting "[99999]":

If you then insert an update [8] into the server script file, replacing [7], the user will get update [8] the first time thereafter.  Once update [8] has been successfully processed they will go back to receiving the message box in the [99999] block.

Note: the actual section number "[99999]" is not significant - it simply has to be the highest in the script file.  It does not have to be the next sequential number.  We have used "[99999]" on the basis that by the time we need "[1000000]" we will either be retired or, if we really have to, will be able to change the number to "[1000000]" in our favorite text editor (Word 2303?)!

Top


Q: How is the Web Update Wizard Licensed?

The Web Update Wizard is licensed either per single application, or for any number of applications developed within your organisation, depending on which licence you have purchased.

Top


Q: My update script is not working!  How do I debug it?

  1. Check the syntax of each keyword line against the keyword reference examples in this help file.  Note that keywords ARE case-sensitive.
  2. If the script is unable to download a file needed for the update, check you have a leading '/' character in your Filename or Zipfile keyword line or that you have specified the full URL, including the "http://" part..
  3. If the script is unable to download a file needed for the update, can you download it by typing the URL into the address bar of Internet Explorer?  If not, perhaps their is a security issue on your server.
  4. Check the WebUpdateSvc.log (WuW.log if you are using WuW.exe) file, which is maintained by the Web Update Wizard service / executable as it runs.  You will find this file in the same folder as the Web Update Wizard service (Windows System32) (or WuW.exe if you are using the Windows 9x version of the Web Update Wizard).  Check for error messages and that the log confirms the steps you expect from your script have been completed.
  5. If your ExecBefore or ExecAfter commands are not working correctly, ensure that you use quotation marks where the path is or expands to a long filename.
  6. Start with a simple script section and add to it one line at a time.  Test on each added line.
  7. Ensure your test environment is set up correctly - i.e. you start with the correct versions of files, folder contents etc..  If you see inconsistent behaviour from the Web Update Wizard between tests then this is the most likely cause.
Top

Q: Will Web Update Wizard run an exe program to complete the update? In other words, can I create a patch that runs as an exe that will update my program and have Web Update Wizard run that exe? Or will your update program only work with zipped files?  

You can get the Web Update Wizard to run your exe program to complete the update with a 'ExecAfter=' line in your server script file.  (You can have as many ExecAfters as you like (as well as ExecBefores!)).

Yes, you can get the Web Update Wizard to download your exe as a file and then run it with ExecAfter.  You could even zip up the exe and get the Web Update Wizard to download the zip file from your server, unzip it and then run the exe (leaving no zip file behind on the user's disc!)  Guess this would be attractive if you have a user-base of mainly modem users.

Yes, the Web Update Wizard will work with any type of file.  It just has that added ability to download and unzip a zip file on the fly.

Top

Q: My application cannot be exited just by clicking the Close (X) button the application window, as it also has the system tray icon. To exit it, my users do a right-click on the system tray icon and then exit. I could not find a way to terminate the process for my application given the window title name. Is there a way to do that?

This is not a problem.  Tray apps have window titles too - you just cannot see them!  Download something like Winspector ( http://www.gipsysoft.com/) or use Microsoft's Spy++ utility and use it to find the window title text of your tray application.  There is a slight delay before the tray icon disappears in these cases, but I think this is a Windows painting type issue with all similar force-close operations other than when you exit using the menu function from a tray app and the tray apps have been tested and definitely close in response to the Web Update Wizard.


The only type of application which cannot be closed using the WindowTitle keyword is a windowless application.  Here, your only recourse is to make your application respond to a command line switch, in the same way as the Web Update Wizard service does when it integrates with the Services control panel applet.  Use an ExecBefore keyword to launch the process which closes your windowless application and an ExecAfter keyword line to restart it after the update.

Top


Q: What kind of error message would a user see if the firewall prevents the user from using the Web Update Wizard?

If the Web Update Wizard http calls for the server script fails then it assumes you are not connected to the internet and remains totally concealed - i.e. no error boxes displayed etc..  Obviously it would not do for disconnected laptop users to keep seeing error boxes whenever they are using the computer not connected to a network.

Top


Q: Do you have any documentation on what the user should do in order to make the Web Update Wizard a permitted application for my firewall?

Depends on the firewall!  The Web Update Wizard uses port 80 exclusively, which is the standard http port.  Most software firewalls contain rules which filter access on a per-application basis.  Generally the firewall will prompt when a new application tries to use a port and the user can either create a rule which permits or denies access to the port.  No update component in the world is going to operate any differently as far a firewalls are concerned - the component would need to be able to programmatically edit the rules list of every firewall known to man (and woman!), which would both be impossible and perceived by most users as a massive security risk.  If you want update over the web then your customers will have to accept, and should be used to, their firewalls prompting them for rules on post access.

Top


Q: After my program updates, does the user's system have to reboot?


Not normally.  Your program calls the Web Update Wizard.  If an update is required and you include the appropriate information in your script file, the Web Update Wizard will close your application and download the update, overwriting (and optionally backing up) your program's file.  It will then restart your program.  (It closes your app by sending it a WM_CLOSE Windows message.  If your app does not respond within a timeout you can specify you can get the Web Update Wizard to optionally force your app to close (in the same way as Task Manager does)).

In addition, however, if your update process does need to replace in-use files which closing your app does not free up, you can use the MoveFileEx and Reboot keywords to replace the in-use files.  These keywords are fully documented in the helpfile, included in the trial download.

Top


Q: Can I use your updater for more than one program?

Reply: Yes.  But please note that the $129.95 version gives you license to use the updater for one application title only.  The $499 version lets you use it for any number of applications produced by your company.

Top


Q: The screen where the update wizard is retrieving the file is not adaptable. is there a way that we can customize that screen?

At present certain text within the Web Update Wizard is 'hard coded' in English and it is not possible to change it, other than by editing the exe's resource using something like PE Resource Explorer (http://www.wilsonc.demon.co.uk/delphi.htm).  I realise this isn't ideal!

Full internationalisation is very much at the front of the queue for the next major release of the Web Update Wizard.

Top


Q: Is there something like an "Automatic mode" or "Silent mode", where the updates are executed absolutely without user interaction?
 

See 'NoSuccessMessage' in the keywords section of the help file. The following example will generate no dialog with the user:   [4] Filename= http://www.myserver.com/update.exe NoSuccessMessage   Of course, if you need to close an app with a 'WindowTitle=' then the Web Update Wizard will tell the user it needs to do this. To close without permission would be rude :-).    

Top


Q:Our clients purchase yearly support subscriptions which give them access to program updates. We need to be able to restrict access to updates to only those clients who have active support subscriptions.  

I believe your best option is to use PHP/ASP to achieve your requirement.  See the help file Contents -> 'Reference' -> 'Using PHP/ASP to dynamically generate update scripts'.

Alternatively you could use the 'SubmitForm" and "SubmitVariable" keywords to transmit a key which your application controls which lets your web server control who gets access to the updates.

Finally, you could add your own command processing to the update process using 'ExecBefore' and 'ExecAfter' keywords in your scripts.

Top


Q: Does the Web Update Wizard work over a LAN?


The Web Update Wizard is designed to deliver software updates over the web. It uses 100% http: protocol in order to do this.  Therefore, if you want to use the Web Update Wizard over a LAN (Local Area Network) then you must install and run a web server on that LAN.  There are no special requirements for the web server, as only http: is used by the Web Update Wizard.  A (relatively) simple one like the the Abyss Web Server from http://www.aprelium.com/ is excellent, free and very compact.

However, no, the Web Update Wizard cannot operate against a drive letter and path or a UNC.  (That's why it's called the Web Update Wizard!)

Top


Fast 1.7 meg Fully Featured Download

Web Update Wizard Icon