Windows 7 implemented a bunch of new security features to protect Windows and the programs that were installed on the computer. It also implemented a lot of improvements to the usability and user-friendliness of the security controls that were added to Windows Vista.
One of the new controls is that programs are not permitted to write to any sub-directories under C:\Program Files (assuming you have Windows installed to drive C:).
The issue gets complicated because programs that were written for Windows 7 know this. But, programs written for earlier versions of Windows don’t. Windows 7 handles the redirection for them automatically.
Normally, this is not a problem, as we really don’t want to try to edit the programs’ configuration and data files. But, sometimes it is.
Some of older programs actually stored user data, rather than the program’s internal data, in the programs installation directory. Under Windows 7, they can’t do that. Again, Windows 7 handles that part automatically, so the program doesn’t know the difference.
The problem comes in two different ways:
- we may want to back up that data, so that we still have it if the computer crashes or if we want to copy it to another computer, and
- we may want to do a clean installation of the program, in which we need to make sure we delete all the program’s configuration data (usually, the reason we need to do a reinstall is because we (or something) has messed up the configuration, so the program doesn’t look right or doesn’t work right.
First, we uninstall the program, using either the Uninstall option that the program set up in the Windows Start Menu, or via the Windows Control Panel’s Uninstall a Program (formerly, Add or Remove Programs) link.
Then, we start getting rid of the saved configuration data.
The programs’ Uninstall routines typically only delete files exactly matching the original versions installed (including later updates, which log themselves appropriately). Uninstalls normally do not uninstall any files the user has actually changed, including those changed because the user selected different program options.
So, our step is to delete the program’s directory from the Program Files directory.
Next, we need to delete the program configuration and internal data files that Windows 7 has hidden.
While Windows 95, 98, Me, 2000 and even XP stored a lot of information in the Windows Registry, we can ignore any residual pieces for now (we’ll get back to them).
They also often stored files User-specific configurations under "Documents and Settings\Users\[userID]\…."
Windows 7, however, creates a "shadow" area for the programs to store their data — transparently to the program. The program doesn’t know where to find this and doesn’t need to know to actively read or write to it.
The problem is that the programs’ uninstall routines do not delete data there. Windows 7 probably points the program to the correct place for its data. However, this is where we fall into the same un-installation trap. Uninstalls typically only delete files exactly matching the original versions installed (including later updates, which log themselves appropriately).
Uninstalls normally do NOT uninstall any files the user has actually changed or the program has changed. That’s why we used to have find and delete these files.
If a 32-bit program wants to store information of any kind in C:\Program Files, Windows 7 automatically stores in
Users\[userID]\AppData\Local\VirtualStore\Program Files (x86)\[obviousDirectoryName, e.g. Corel]. In this example, if you had multiple Corel programs, you’d find multiple sub-directories under the Corel sub-directory. In order to do a clean install, we’d have to delete, or at least rename, the sub-directories with the program’s data.
A 64-bit Windows 7-aware program stores its data as a sub-directory under C:\ProgramData (note, there’s no space in this directory name, unlike Program Files). Again, in order to do a clean install, we’d have to delete, or at least rename, the sub-directories with the program’s data.
My last step, if I need it, is to run PC Matic or Optimize 3.0 to let it search for any orphaned entries in the Windows Registry. Of course, it does its optimization checks for other types of appropriate changes, too. Those might include tweaking the networking settings to enable higher speeds.