Software AutoUpdater -- Experimental Software AutoupdatingWhat is it?
Did you ever wish Windows Update worked for more programs? Do you use a lot of software from small vendors and wish you could update them quicker? Then maybe this will help.
Inspired by Mouser's Find and Run Robot and his frequent new alpha releases I have created a software updater program.
- Configuration on a per application basis through ini files
- Decentralised, after installation developers can easily spread new versions to end users (or users can provide the ini files)
- Automatic checking and downloading of newer versions of software for end users
Whether or not this program will actually be useful depend on developers picking it up and users having the same dream as me.
As it is based on Autohotkey it can easily be extended for example with installation AHK scripts. Functionally it is more to prove auto-updating can be done and brings great benefit.How it works
People can install a .ini file in the Apps\ folder for each application they want to keep up to date. a sample ini file has the following configuration:
LastCheck=Wed, 02 May 2007 13:55:24 GMT
The Title line is optional for display purposes. The IniURL pair points to the same ini file online -- updated by the developer or third party (the program then knows where to look for updates as well as being able to move ini files). the URL pair points to the latest executable. LastCheck is systemgenerated, so don't include it.
The auto updater will compare the last-modified header of the URL to a value it writes in the local ini file of the last check of the program, if the file is newer then the previous check it will download it and run it so the user can upgrade. Afterwards it will write out the time of the update to the ini file.
I'm curious to see what you think of it. I wish it could update itself, but because the executable is in use while updating I have not solved this. Also I wish to make it possible to provide a redirect as a url, less updating for the developer (untested so might already be possible)
Suggestions, implementation issues an comments are very welcome. See the source etc, it is the first public version and will probably have some bugs.