Web Update Wizard: What's New?
Please note that the contents of this page are replicated in the Web Update Wizard help file, together with links to the documentation of each new feature. You can click this link to download an evaluation copy of the Web Update Wizard or to download a refresh of your licenced copy.
Added special section to WebUpdateSvc4.ini to turn on verbose logging
- as in:
[WuWSettings]
SuperLogging=Y
(Setting SuperLogging=N reverts to standard logging.)
The CheckFileExists keyword now has an optional "<NOT>
The SubmitForm option has been upgraded to now support POST webform submissions, as well as GETs. Please see the updated help file for more information.
Fixed Campaign Manager dialog customisation to bring in line with update dialogs.
Improved LoginAs/Password error handling
Added a progress bar to show progress while downloaded zip file is being unzipped by the Web Update Wizard. Affects Zipfile= keyword only.
Inserted a pesky space into the "x% of file downloaded" title bar text on the download dialog.
The LastUpdate.xml file is now written before the UsageCounter registry value at "HKEY_LOCAL_MACHINE\SOFTWARE\\WUW" is incremented. This seems a more correct order.
Some documentation corrections and additions.
The Web Update Wizard now uses the Internet Explorer proxy server settings when running in Windows service mode, as well as in standard application mode. (Previously in service mode it used the Local Service proxy server settings, which may be different to the logged on user's settings.)
Changed behaviour when the script file contains syntax errors. Now, only one message box is posted for a script block containing multiple syntax errors, which reports all the errors found in the script block. In addition, the syntax errors are now written to the WebUpdateSvc.log log file.
Removed the wndTopMost flag from the Z-order window placement properties of Web Update Wizard dialogs and message boxes, so that they are brought to the front on display, but other windows can be subsequently be brought in front if required. This allows the user to continue computing whilst the update is being made.
Oops - 2 releases in 2 days - sorry! Not good, but at least it proves we fix problems quickly!
Fix: font override in Title and SubTitle keywords in 'empty' script blocks (i.e. the block [99999] which tells the user they already have the most up to date version) now works correctly.
Fix: Integrated Windows Authentication now works properly when using LoginAs and Password keywords.
Enhancement: Added the RunAlways keyword, which causes a script block to be processed always, irrespective of the value of the counter variable in the script. This makes it possible to have a single script block and to process the updates based on a comparison between the file version number on the user's computer and a specified (new) version number in the script file, using the CheckFile or FileVersion keyword options.
All processes launched from the Web Update Wizard by KillProcess, WindowTitle, ExecBefore and ExecAfter are now launched with the working folder of your running application (i.e. equivalent to the <CLIENTFOLDER> folder substitution variable). Previously the working folder of WebUpdateSvc.exe was used.
Normally you must install the Web Update Wizard licence file, WebUpdateSvc.LIC, into the same folder as your running application. However, some users have asked for the ability to install it into a different folder. This update optionally lets you install your licence file (WebUpdateSvc.LIC) into different folder to your running application. The URL you pass to WebUpdate() can now have the local path of the licence file appended to the script URL.
For example, say the licence file is stored in the folder 'c:\Program Files\MyApp\LicenceFolder':
WebUpdate("http://www.mycompany.com/updatescript.txt|c:\Program
Files\MyApp\LicenceFolder");
The folder path is appended to the update script URL and separated with a '|' character
(ASCII character decimal 124 / hex 7C).
However - please note that if you use this option the default update folder (i.e. if you do not use a TargetFolder keyword) will be the folder you specified for the licence file. Also the <CLIENTFOLDER> folder substitution variable will return the folder you specified for the licence file.
Fixed problem with WebUpdateWait() function in wuw.dll. It was needlessly trying to create the registry counter key when all it needed to do is open it for reading. WebUpdateSvc.exe actually creates the key.
Improved, clearer and better structured documentation. Virtually totally rewritten, with a view to making the product more accessible and easier to learn. Please send us feedback if you are unhappy with any of the documentation or have any suggestions to make it clearer.
The 'Web Update Wizard Named Pipe Test Utility' has been renamed
'Web Update Wizard Project Manager' and can now be used as a proper 'front end-
tool for preparing update scripts / uploading them to your server. It has been given
significantly upgraded features, such as the ability to start and stop the Web Update
Wizard service, launch editing of script files, ftp uploads of scripts / update
files etc.. In prior versions this utility communicated directly with the Web Update
Wizard service through a named pipe but from V3 forward it uses the recommended
mechanism for communicating with the Web Update Wizard - i.e. via a WebUpdate()
call to the wuw.dll Dynamic Link Library:

Common binary implemented. WebUpdateSvc.exe can now be installed as a Windows Service, or can operate as wuw.exe in earlier versions - i.e. as a standard Windows executable, passing the URL of the server update script as an argument in the command line in a ShellExecute() API or equivalent call.. (N.b. When installed as a Windows Service, WebUpdateSvc.exe is able to operate in the SYSTEM security context, allowing you to update files in folders such as Program Files which the logged on user may not have rights to. When launched with a ShellExecute() API or equivalent call and a script URL WebUpdateSvc.exe operates exclusively in the logged on user's security context). Wuw.exe is no more!
Full multi-language support added. All interactions with user can now be customised via language files. If a language file matching the Windows language setting is not available then the Web Update Wizard looks for a default language file (which you can provide). If no default language file is found then the Web Update Wizard reverts to (PowerProgrammer) English.
Added KillProcess keyword, a more powerful and reliable way (than WindowTitle ) of closing specified running applications prior to updating them and then restarting them once the updated version has been written to disc.
The Web Update Wizard in Windows Service mode now works properly through corporate proxy servers, providing the logged on user already authenticates with the proxy server via their Internet Explorer proxy server settings. Previously http requests were launched in the SYSTEM security context, which meant that they were unable to authenticate with corporate proxy servers.
Added Web Update Wizard clipbook / syntax definitions for popular
Textpad (shareware) and PSPad (freeware) text editors. Tip: PSPad uses IDE-type
code completion / boilerplates more effectively for the Web Update Wizard:

Important change!
The Web Update Wizard licence file, WebUpdateSvc.LIC, must now be located in your application's folder in order for the Web Update Wizard to find it. In other words the licence file must be in the same folder as the application which calls the Web Update Wizard is running from. In addition, Web Update Wizard licence files are now personalised to your software company. Registered users are provided with a serial number which converts their licence to a registered version.
Web Update Wizard dialogs now use XP style buttons where applicable.
Fix: previous versions of the Web Update Wizard issued 2 requests to the target web server for each URL requested, although the actual file was only downloaded once. The first request was to test that the file was reachable / existed, and the second request was issued to initiate the actual download. This behaviour was causing 2 entries to appear in the web server log files for each request, although the file was indeed only downloaded once. This is fixed in V3.0.0.0 - there is one request only for each URL. Apologies to any customers who previously reported this behaviour - it took much research to pin down and eliminate!
Added: You can change the font name and height of the fonts used for the Web Update Wizard dialog title panels. See the keyword help for Title= and Subtitle=.
Wuw.dll can now, optionally, interoperate synchronously with your application. In other words, it will only return control to your program once the Web Update Wizard has finished its update check / update, or after a specified timeout. This option is available by using the new WebUpdateWait(URL, TimeOut) exported function. To work asynchronously (as previously) just keep using the WebUpdate(URL) exported function.
The TargetFolder= keyword now supports UNCs.
Small bugfix on CheckFile / CheckVersion keywords. Only affects Windows 98 clients.
Fixed some dratted broken links in the help file! Why do somewysiwyg web page editors insist on expanding urls to a full localpath? Must upgrade to notepad for my web pages!
Added several new folder substitution constants. You can now substitute the users's 'My Documents', Start Menu folder, Startup folder, Windows fonts folder and desktop folder, as well as the existing Windows, temp, system andProgram Files folders in the keywords TargetFolder=, ExecBefore=, ExecAfter=, Bitmap=, Icon= and CheckFile=.
Added LoginAs= and Password= keywords, which let you specify authentication details where your update file resides in a password protected web server folder. You can either 'hard code' the details in your script or refer to a pair of specified registry keys on the user's PC. See the keywordssection for more information.
Another cursed small bug fixed!
This is just a small maintenance release which fixes a bug reported by a customer.
Added new keyword to update script options: ' CampaignManager= ', which allows you to launch campaign manager scripts directly from your update script.
WuwStub.exe now returns 0 to calling process if URL successfully passedto Web Update Wizard service application, else non-zero if the call failed(because the service named pipe is busy or not running).
Addition of CheckFileExists keyword - allows you to specify that an update script section should processed only if one or more specified files alreadyexist on the user's computer.
Sometimes someone makes a suggestion that is simple to implement, but which adds potentially lots of benefit to the product, and this point release contains one of these. We have added a newkeyword - ' IniSectionID= ', which lets you determine the INI file section label used to keep track on the user's PC of the updates processed. The result is that you can use PHP/ASP to dynamically create the server update script files for the Web Update Wizard on your server. You application can pass through PHP/ASP URLs which contain parameters to the Web Update Wizard, which then submits it to your server using http in the normal way. Your server can then generate the script and return it to the Web Update Wizard for processing. The benefit is that this lets your server receive and react to information about which customers are updating etc...
Addition of Campaign Managermodule - the ability to use the Web Update Wizard to manage a marketing campaign launched from your application via the Web Update Wizard. This functionality is completely separate from the software update functionality offered by the Web Update Wizard, but works in a very similar way - i.e. you provide a server script file, you launch the Web Update Wizard with its URL, the Web Update Wizard parses the file, determines whether it is a software update or campaign manager type script and proceeds accordingly.
Removed the previous restriction that the update files had to be on the same server as the Web Update Wizard server script. Updated thedocumentation for ' Filename= ' and ' Zipfile= '.
If no ' Subtitle= ' text is provided then no subtitle will be shown on the Web Update Wizard dialogs. Previously the text "© PowerProgrammer 2002-2004' would be shown.
Service now has a proper 'Description' in the Windows servicecontrol snapin/applet. (Well, every little helps!)
Further revisions on help files - fixing a few broken internal links.
Updated help files. Hopefully we have made them clearer! Specialfocus on clarifying the architecturaloptions - i.e. using the Windows Serviceimplementation of the Web Update Wizard versus the standard Exe version.
Removed the requirement to pass the 'http://' part of the serverscript URL through to the Web Update Wizard components from yourapplication. Everything now works either way - i.e.'http://www.mycompany.com/script.txt' and'www.mycompany.com/script.txt' both work.
Added ability to skip processing of one or more subsequent update blocks if user declines an optional update. See enhanceddocumentation of Importance= keyword for more information and examples.
Enhanced the Named Pipe Test Utility (WebUpdateSCP.exe) to:
- Remember the last URL tested
- Open the WebUpdateSvc.ini file for viewing or editing
- Open the WebUpdateLog.log file for viewing or editing
Added new keyword - CheckFile. This keyword lets you specify a file, a file version number and / or a file date/time stamp. If the file does not exist on the user's PC, or the file version on the user's PC is older than the version specified, or the date/time stamp of the file on the user's PC is older than that specified in the CheckFile line, then the script block will be processed, otherwise it will be bypassed.
Fixed bug on MoveFileEx= keyword processing in line with Microsoft Knowledge Base Article - 202071 ( http://tinyurl.com/dk84s ). Unfortunately Microsoft's documentation of the MoveFileEx API function leaves one critical item out! (See http://tinyurl.com/8l3va)
Fixed incorrect handling of version strings where the stringcontains spaces between commas or full stops.
Developer Installer installs the Web Update Wizard service app (WebUpdateSvc.exe) and licence file (Web Update Service.LIC) into the Windows/System32 folder. Previous versions installed these files into the Program Files folder for the Web Update Wizard. This change brings the Developer Installer into line with the Client Installer program, wuwNTClient.exe, supplied with the product, and hopefully makes testingyour scripts easier.
Enhanced ' WindowTitle= ' keyword to more effectively deal with applications which do not respond to WM_CLOSE window messages. If the application has not closed down within a default period of 5 seconds in response to receiving its WM_CLOSE message the Web Update Wizard will forcibly close it down. You can control the period between WM_CLOSE and forcible closure using the "<Timeout=xxx>" option - see the keyword reference section for more information. (Prior versions just issued WM_CLOSE messages without following up with a forced closure in the event of the target window failing to respond to the message.)
Enhanced the ' ExecBefore= ' and ' ExecAfter= ' keywords to allow you to (optionally) specify / limit which operating systems the command should be run on. Append the option "<MaxVer=x,x,x>" or "<MinVer=x,x,x>" to the keyword line for this additional level of control.
Added "<BlockDone>" option to the ' ExecAfter= ' keyword. This ensures that the Web Update Wizard counter is incremented even if the ' ExecAfter= ' keyword uses the "<Wait=Yes>" option and the launched process triggers a reboot. In this situation earlier versions of the Web Update Wizard would not have incremented the counter. (See the keyword reference section for more information.)
Fixed bug on " MoveFileEx= " option for Windows 9x platforms. This option was previously failing under Windows 9x.
Downloads greater than around 5.5Mb were failing on Windows 98. All other operating systems and downloads less than 5.5Mbwere unaffected. This bug appears to be related to a problem withmultiple uses of the Microsoft realloc() C runtime libraryroutine. Version 2.2 works around this issue by eliminatingrealloc() calls and therefore resolves this issue.
Log file detail increased.
Replaced the ActiveX component in V1 with a simple 32-bit Windows dll which performs the same function. The dll does not need registering in the Windows registry and exports just one function - WebUpdate(URL of server update script as a string).
Dialogs totally changed and (hopefully) vastly more attractive tousers.
Dialog colours, title text, icon andbitmap can now be customised and 'branded' to your own product.
Windows 9x and Windows NT or later version now uses 99% common code and is compiled from the same code base. The Windows 9x versionhas been renamed WuW.exe due to Windows 9x's restrictions on replacing in-use files via the (antiquated) wininit.ini route.
Suppressed display of download dialog when the service downloadsthe script from the server.
Added (optional) SubmitForm keyword to simulate a web browser form post, including spoofing the referring page. Use to transparently send message to software house from the Web Update Wizard that an update was completed on a user's machine.
Added user defined substitution variables for SubmitForm, so that registry values (text strings) can be transmitted with the SubmitForm syntax.
Added (optional) FileDate and FileVersion keywords, to save downloading update files which are newer on the client PC. Update only occurs if version for download is newer than version on user's machine.
Fixed bugs on dropped connections where the ExecAfters ran anyway (they don't now) and where the update was incorrectly logged as successful (it isn't now).
Added Reboot keyword to reboot computer as last item in process.
Added MoveFileEx keyword, which allows you to replace in-use files at next reboot.
Added NoSuccessMessage keyword which, if included, prevents the 'xxx was successfully downloaded..' message box at the end of the download.
Added <NOWARN> option which suppresses the "I'm going toclose xxx" warning for the WindowTitle keyword - e.g. "WindowTitle=Your Application<NOWARN>" will close 'Your Application' without popping up a warning box.
Added FinalMessage keyword which lets you post your own success message instead of the Web Update Wizard success message. Shows after everything else has finished but before (optional) reboot.
FinalMessage and Message keywords can now expand carriage returns - use a '|' character in the message as a newline character.
The NT Service has always received the folder containing the exe which contains the ActiveX component of Web Update Wizard. Windows 9x users now now get this information too - the Web Update Wizard sees the current folder as the one which contains the wuw.exe component.
Added <CLIENTFOLDER> as a constant to TargetFolder, ExecBefore, ExecAfter - it expands to the folder hosting wuw.exe for Windows 9x and the folder hosting the application which calls the Web Update Wizard dll ( wuw.dll ) for the NT Service version.
Enhanced the wuw.dll DLL so that it knows whether to call the Web Update Wizard Service if running on NT or later or the WuW.exe if on Win 9x. Therefore it is now possible to create a 'one size fits all' installation program for the Web Update Wizard functionality.
Added <TEMPDIR> and <COMPUTERNAME> to list ofconstants that ExecBefore / ExecAfter can expand.
Added <PROGRAMFILES>, <WINDIR> and <SYSDIR> tolist of constants that TargetFolder can expand.
Enabled a user defined message for situations when the client user already has the most up to date versions of the software - simply append a block at the end of the server script with a counter value larger than any used in the script (e.g. "[99999]") and use the "Message=" keyword to have your user-defined message displayed.
For Windows NT/2000/XP platforms, ExecBefore and ExecAfter processes launched within SYSTEM security context unless "<AsUser>" is appended to their keyword lines, where the launched process runs in the security context of the logged on user. (In V1 all processes where launched in the SYSTEM security context.)
Automatic Updates Over the Web with a single line of code!
|
Fast 1.7 meg Download of the full Web Update Wizard Developer
Edition (expires in 30 days). Test the product with your software - we think you
will like it!
|
|
|
Only $129.95 USD for a Single Application or $499.95 USD for an unlimited application license and get the full Developer Edition version immediately. |
Kevin D. Wolf, President, Software Logistics,LLC.
Mihir Shukla
CEO, Tethys Solutions
Steven Carter CNC-Zone Software