6 Things to Check on Your (Old) Programs

Many ASP members have been in business for quite some time and have their programs up and running. But the times (and Windows versions) are changing and there are some things one might easily overlook, being so used to one’s own programs.
Here are 6 things that you should check on your programs:

Code signing

Signed executables are important at many stages nowadays. Even though the customers usually wouldn’t notice the actual signatures, they will notice the reduced warnings that a signed executable causes. This warnings do not only come from Windows during the installation, but also from antivirus programs and other security software which rate the “trust” of each program. That’s why you should not only sign your installer, but also all ‘.exe’ and ‘.dll’ files that you’re installing.

High-resolution icons

I never noticed this one myself until a customer told me. The 16×16 and 32×32 icons in my programs looked pixilated and outdated. You can add higher resolutions to your “.ico” file with the freeware IcoFX. Be sure to keep a backup of the old “.ico” file because not all IDEs allow linking the new “.ico” files. As a workaround you can use the command-line tool ReplaceVistaIcon (available on Codeproject) which can replace the “.ico” section in your executable with the new “.ico” file.

Common controls 6

The new version of the Microsoft GUI will allow applications to have a “nicer” look, for example the slightly rounded buttons. You can activate this by adding a manifest file with a “Microsoft.Windows.Common-Controls” section. You can either specify the manifest file in your project settings or use Microsoft’s manifest.exe command-line tool.


Many customers now have Windows versions with split rights accounts. In normal mode a lot of things will fail, like installing a service or creating a shortcut in the startup folder. If your program requires full admin rights for any of its actions, you should be aware of this. If the function fails you should either give the user a **helpful** error message or handle the UAC “elevation” to full rights automatically.
You can detect the type of account your program is running under with GetTokenInformation and TokenElevationType. It is not possible to elevate a running process. You have to start a new process with ShellExecuteEx, specifying “runas” as verb.

Progress bar

If your program includes any sections that display a progress bar for some time, then you should support the Windows 7 feature of displaying the progress also in the Windows task bar. The details greatly depend on your programming language. Use IID_ITaskbarList3 as a starting point.

Larger fonts

The screen resolutions have become so ridiculously high, that it’s difficult to read the text on the screen. That’s why many customers have activated larger fonts in Windows. This causes Windows to automatically scale up all dialogs. This works nicely with most standard dialogs but can cause problems with custom controls. Check your application while large fonts are activated.
Thomas Holz is the owner of ITSTH and the author of outlook tools to synchronize, remove duplicates and use boilerplate texts and writes in his devblog, if he still has too much time after optimizing the website.