Actual Updater

How to add an update feature to my program

To integrate the update functionality into your program, first, download Actual Updater and install it.

The Actual Updater package contains only two files: Updater.exe and Config.exe .

Updater.exe is the main updater program which is used for checking for updates:


Updater.exe uses file "Updater.ini" (or "Uninstall.ini" in case you use Actual Installer to distribute your program) which contains information about your program: Name, Version, Product GUID, URL of Update Information File, etc..
These two files (Updater.exe and Updater.ini) must be located in your app's main folder:


To create file "Updater.ini" and copy these two files into your app's folder use "Actual Updater Configuration Tool" (file Config.exe, see shortcut on Desktop).

NOTE: If you use Actual Installer to distribute your program, then you don't have to use the Configuration Tool to create Updater.ini file, as Actual Installer has the Actual Updater features built-in in its interface (Installation \ Updater). You may use the Configuration Tool for creating update.txt file.


Enter your Product Name, and select Main Executable file. If your app doesn't have main executable file, just select any file from the folder where your application is located. In this folder will be created the updater files.

In order to check for updates, the Updater.exe should know the currently installed version of the application. There a few methods to get this version:

What is GUID?
Product GUID is a reference number used as an identifier of your product.
Example: {FCB1CDDE-F768-4D43-B1A1-BC019502DBC5} is for Actual Updater
Most installers generate a unique product GUID for every application and write it to Registry during installation. Here is how to get it from some installers:
- Inno Setup: open script file and look for "AppId="
- NSIS: open script file and look for "!define MUI_PRODUCT"

Then select preferred options for the updater, and specify the URL of Update Information File (see below). After that, click "Generate Updater.ini".

Update Information File - is a plain text file (e.g. update.txt) that contains the information about new version: new version number, link to download this version, and release notes (optional). Read more here.

You can create this file manually or by using "Actual Updater Configuration Tool". This file should be uploaded to your web server, so Updater.exe can access it. Example of update.txt file:

Every time when you release a new version of your program, you should also update this file on your server.

How Does It Work?

When Updater.exe is launched (as auto-check for updates, as "Check for Updates" shortcut from "Start Menu \ You App" or from your app menu "Help \ Check for Updates"), Updater.exe does the following:
1. Reads the program info from Updater.ini and extracts the currently installed version of program (from Regsitry, Main Executable, or updater.ini);
2. Downloads the Update Information File (update.txt) from specified URL;
3. Compares new version number and currently installed version number of the program;
4. Prompts to download if it is newer or exits.


Use Product Name as Updater Title - Instead of the text "Actual Updater" in the dialog / message titles, will be used your product name.

Allow users to change the updater options - Users will be able to disable / enable the automatic update function (and silent mode), change the update frequency.

Use Downloader - By deafult, new version links are opened in the default browser. Select this option to add the Downloader.exe file which downloads the new version and launches it automatically.

Update Main Executable - Select this option, if you distribute your application without an installer and for updating you just need to replace the main executable file with the new one. During the update process, the new main executable file will be downloaded and copied to the old version location.

Automatically check for updates - Select the preferred update frequency - on Windows startup, Once a Day, Once a Week, or Once a Month. 'On Windows startup' is performed via Windows Registry (Run section). Other feautures are performed via Task Scheduler. Default time of running Updater.exe is 09:00. You can change this time via Additional Parameters.

Use Smart Notification - If there is a new version of your application available, but the user twice declines the update notification, the updater can suggest the user to not being notified about this version, or suggest to change the update frequency.

Additional Parameters - Specify additional parameters in this field:
-allowchange - Allow users to change the updater options
-allowsilentupdate - add this to allow users to enable / disable the silent mode for the auto updates
-taskparam[params] - Sets parameters for Task Scheduler, e.g. change the deafult time to 10:00: -taskparam[/ST 10:00]
-notaskwhenavailable - add this to remove the option "Run task as soon as possible after a scheduled start is missed" for Task Scheduler.
-replacefile - Update Main Executable only
-dadmin - launch Downloader.exe as admin
-dparam[] - pass additional parameters to Downloader.exe . It's possible to pass parameters to the file that is downloaded (add /X and specify parameters for the file). /F - download multiple files. In this mode the source URL (/S) must be a link to a plain text file with a list of files to download.
-ladmin - launch MainExecutable as admin (for option "Check for Updates on App Launch", supported with Actual Installer only).
-lparam[] - pass additional parameters to the main executable (for option "Check for Updates on App Launch", supported with Actual Installer only).
-setcurrentdir1 - set current directory for the main executable file (for option "Check for Updates on App Launch", supported with Actual Installer only).
-nopromptautoupdate - when checking for updates with switch /A, and there is not update, the Updater prompts to use the Auto update feature. Add this parameter to disable this feature.
-newdialog - Use New Dialog. Old dialog.
-largedialog1 - option for New Dialog - make it large (400x390 px).
-largedialog2 - option for New Dialog - make it large (500x600 px).
-showcurver - Show the text "Currently you have version X".
-optioncolor - Set the color of the Options link to Blue.

Pass Parameters to New Version URL - add additional parameters to the link to download new version. You can also use the function GETREGVAl[] to extract a value from Registry. Example:
So, if the new version link is, e.g. , then this function add a value from Registry to the link . Will be:

Command Line Parameters

By default, when Updater.exe is launched with no parameters, it displays the Product Details window. To check for updates, a user should click the Check for Updates button.

Updater.exe supports the following command-line parameters (switches):

/S - checks for updates in the silent mode. Message only appears if an update is available. No other messages appear (including connection error). This switch is recommended to use when you want to check for updates when your application starts;

/A - automatically checks for updates when updater starts. Standard messages appear: an update is available or not, errors, etc. This parameter is recommended to use when calling Updater.exe from your program (e.g. from menu "Help \ Check for Updates").

Example: Updater.exe /A

/Q - quiet mode (super silent), no messages, only exit codes (see below);

The following switches are supported only by the Pro edition:

/O - Opens the Options dialog. If specifid "/O i", where i - is a number, then also sets the item of the option "Automatically Check for Updates": i = 0 sets "on Windows startup", i=1 - Every Day, i=2 - Every Week, i=3 - Every Month

/F - (Force update) skips the update available message, and performs downloading using Downloader.exe . Can be used with switch /S, to silently download and install the new version;

/CHECKAUTORUN - Checks if the option "Automatically Check for Updates on Windows startup" is enabled (return code is 10) or disabled (return code is 11). Cannot be used with switch /S

/AUTORUNON i - Turns on the option "Automatically Check for Updates" - for i = 0 uses "on Windows startup", i=1 - Every Day, i=2 - Every Week, i=3 - Every Month

/AUTORUNOFF i - Turns off the option "Automatically Check for Updates" - for i = 0 uses "on Windows startup", i=1 - Every Day, i=2 - Every Week, i=3 - Every Month

/AUTORUNAPP i - if i = 0, then turns off the option "Automatically Check for Updates on %AppName% Launch". if i = 1, turns on.

/Init - this initializes the auto-update function (via Registry or Task Scheduler) when using Automatically check for updates feature. Add a command to execute Updater.exe /Init at the end of your app installation.

/Remove - this removes the auto-update settings (Registry Keys or Task from Task Scheduler). Add a command to execute Updater.exe /Remove at the beginning of your app Uninstallation.

Note: If you use Actual Installer, you don't need to execute commands: /Init and /Remove. Setup program makes it automatically.

You may add the feature to check for updates into your app's start section (use the /S switch), or add the menu "Check for Updates" into the app's menu Help (use the /A switch).

Here are some code examples on how to launch Updater.exe with switch "/A":

C++ Code:

#include "Shlwapi.h"

ShellExecute(NULL, NULL, "Updater.exe", "/A", NULL, SW_SHOWNORMAL);

Delphi Code:

//don't forget to include ShellAPI into USES section

ShellExecute(0, 'open', 'Updater.exe', '/A', nil, SW_SHOWNORMAL);


Process.Start("Updater.exe", "/A");


Dim pHelp As New ProcessStartInfo
pHelp.FileName = "Updater.exe"
pHelp.Arguments = "/A"
pHelp.UseShellExecute = True
pHelp.WindowStyle = ProcessWindowStyle.Normal
Dim proc As Process = Process.Start(pHelp)


string command = "Updater.exe";
string arg = "/A";
ProcessStartInfo start = new ProcessStartInfo(command, arg);


Process::Start("Updater.exe", "/A");

Exit Codes

Updater.exe returns the following exit codes:

0 - No updates available;

1 - Configuration file not found;

2 - Unable to read product details;

3 - Unable to connect to the update site;

4 - Incorrect update information file;

5 - Update available.

The Advanced features are available in the Actual Updater Pro edition. More information.