October 25, 1999

By Karen Kenworthy

IN THIS ISSUE

"The only program ever finished, is one no one uses."

Orphan Files

Once again I was surprised by the interest in a new Power Tool. This time it's the Registry Pruner, which debuted last week. This little program scans the "SharedDLLs" region of your Windows Registry, looking for references to files that no longer exist. It then offers to remove those orphaned Registry entries. Cleaning up this portion of the Registry can eliminate some nagging Registry corruption error messages, and improve the reliability of uninstall programs.

Eldad Benary wrote "It does say on the bottom: "Entries found: 424, Entries with missing files: 0", does this mean I have no orphaned files?" The short answer is yes, and no. It does mean that you have no SharedDLLs Registry entries that reference non-existent files. You might think of these as orphaned Registry entries, since they are left behind after their files have been removed.

But you may still have orphaned files, files no longer needed or used, on your hard disk. The Registry Pruner doesn't address that problem. It never removes a file. It only removes some useless Registry entries.

Solving the orphaned file problem is very difficult. Many folks have tried, but with varying degrees of success. Unfortunately, there's no 100% reliable way of telling if a disk file is needed. Most necessary files aren't mentioned in the Registry. Some aren't mentioned, in any detectable way, in any other file. Even if a file hasn't been used for months or years, it still may be called upon in the future.

Bob Rucker wrote asking, "Do I need to remove all 253 of the items listed in the [Registry Pruner's] main window? If not all, which ones should be removed? Those with a number after the box higher than 1?"

Yipes! After scanning your Registry, the Pruner places a checkmark beside those entries that can safely be removed. All other Registry entries displayed are still useful. The files then mention still exist.

To make this clearer, I've added a warning message to the Registry Pruner. The program will still allow you to remove any SharedDLLs entries you choose. But you'll see a warning message if you select one of the Registry entries that's still serving a useful purpose.

Trick Or Treat

Several of you wrote asking about those numbers that appear in the Pruner's list of Registry entries, just to the right of the checkbox. This is the file's Use Count, or the number of applications that depend on this file. Install programs increase this number by one. And uninstall programs decrease it by the same amount. If the Use Count ever reaches zero, the file itself can safely be removed, since no currently installed applications use the file.

Terry from Auckland, New Zealand, and Donald, from the UK, wrote asking why some Use Counts are large, round numbers. Most Use Counts are in the range of 1 to 10, indicating that at most 10 applications depend in that file. But some Use Counts are as large as 100 to 10,000.

Does that mean 10,000 applications depend on a single file? Fortunately, no. A few sneaky install programs use these phony Use Counts to trick their un-install brethren. Remember that uninstall program reduce a file's Use Count by one each time they run. Only when the Use Count reaches zero is the file actually removed from your hard disk. By setting a file's Use Count to an impossibly large number, install programs make a file "immortal". The file will never be removed, even if you run every uninstall program on your hard disk -- twice.

Inserting bogus Use Counts into the Registry is a naughty thing to do. But some otherwise quite respectable programmers do just that. If they are correct, that the world can't get along without this file, no harm is done. The file will remain on your hard disk forever, just as they intend. But if they are wrong, and the file eventually outlives its usefulness, no well behaved uninstall program on earth will delete it. :(

Registry Pruner Plus

I mentioned earlier that I've made a few changes to the Registry Pruner. The latest version, version 1.3, can help SharedDLLs entries that think they are orphans, but are not. For some reason, a few SharedDLLs entries are left behind even after their Use Count reaches zero. If the file they reference is gone, the original version of Pruner offered to remove the entry. All well and good.

But what if the file still exists? Perhaps, the Use Count is correct, and the file should be removed. But it's also possible that the Use Count is wrong and the file is still needed. Leaving the Use Count at zero could mean a future uninstall program will remove the file when it should not.

The newest Registry Pruner let's you decide what to do. Pruner can now make Use Counts greater than zero, if the file they refer to exists. Since Pruner can't know how many applications depend on the file, it just sets the Use Count to one.

Or, as before, you can ask Pruner to simply remove the entry, if you're sure the file it refers to is no longer needed. In that case, you can also remove the file (though Pruner won't do that job for you).

Thanks to Jeff Thomas, the new Pruner also runs under Windows NT. A typo in one of the program's Windows Registry API declarations caused the program's scan of the Registry to fail when run under NT. Oddly, the same declaration worked under Windows 9x. Maybe that's why Microsoft didn't immediately realize they'd made a mistake in their documentation of that function.

Jeff reported a problem even before last week's newsletter was mailed! Apparently, he visited my Web site just as the new Pruner appeared. Thanks to his quick action, the original Pruner's problem under NT was reported within an hour of the program's release, and fixed later that same night (in version 1.1).

BTW, this same problem affects the current version of my Countdown Timer II. As a result, many people have reported that the timer doesn't store your events in the Registry, to be recalled later. Actually, it does store the events. But because of the typo mentioned a moment ago, it can't find them later. A new version of Countdown Timer II that fixes this problem is currently being tested. Look for news of its release soon!

In the meantime, if you want to get your free copy of the newest Registry Pruner, drop by my Web site at https://www.karenware.com/powertools/ptpruner. And while you're there, take a look at all the other Power Tools (shown in the list that follows).