When is an uninstall not an uninstall?
-
fjparisIII wrote:
I just looked up Revo Uninstaller Pro and apparently it starts by running a program's regular uninstaller. But they don't say what happens if the regular installer abnormally terminates.
Yes, that is what it does initially. Then, after the termination, normal or abnormal, of the regular uninstaller, it starts a thorough scan (you can choose how thorough it must be) of the registry, finding all the remnants of the just "uninstalled" program, including the registry entries used by the Windows uninstaller. Then you have the choice of selecting which entries you want to delete. Usually this frees completely the PC from any traces of the program you want to get rid of. In my case, it saved my a.. many times :) Good luck !
adibene wrote:
Then, after the termination, normal or abnormal, of the regular uninstaller, it starts a thorough scan (you can choose how thorough it must be)
Why would one not choose to be as thorough as possible? Is there a danger in being "too thorough," a chance of removing something not associated with the program you want to uninstall? Or is Revo absolutely certain that everything it gives you a choice about was actually created for the program to run?
adibene wrote:
Then you have the choice of selecting which entries you want to delete.
This is also worrisome. How can you be sure which entries you should choose? Doesn't this assume that you understand how the internals of the program work? What if you make the wrong choice? It could be that Revo only deals with programs that have standard uninstall programs available through the control panel, in which case it is compensating for deficiencies and bugs in that standard installation program. I don't see how it could work with a program that stores its configuration in a folder known only to the program and that doesn't touch the Registry. Such a program would not use a standard uninstall program, but would have its own, custom-built uninstall that Microsoft doesn't know anything about. Revo wouldn't know anything about it either. A well-behaved custom-built uninstall would use such .NET calls as the following:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
. Then it would append its own path within this standard location, but that appended path would be hard-coded in the program and its uninstall and not registered anywhere else. Such programs can have simple uninstalls, regardless of how complex the program configuration data is, because it's all contained within a single folder hierarchy which can be as deep and complex as is necessary. Then the only thing the uninstall program has to do is delete the folder containing its program files somewhere inc:\Program Files
followed by the deletion of its top level program configuration folder. The location of its program files would be stored somewhere in its program configuration folder. (NaturallyC:\Program Files
would not be hard-coded. It's path would be obtained from the following .NET call:Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
.) Of course there are other thi -
adibene wrote:
Then, after the termination, normal or abnormal, of the regular uninstaller, it starts a thorough scan (you can choose how thorough it must be)
Why would one not choose to be as thorough as possible? Is there a danger in being "too thorough," a chance of removing something not associated with the program you want to uninstall? Or is Revo absolutely certain that everything it gives you a choice about was actually created for the program to run?
adibene wrote:
Then you have the choice of selecting which entries you want to delete.
This is also worrisome. How can you be sure which entries you should choose? Doesn't this assume that you understand how the internals of the program work? What if you make the wrong choice? It could be that Revo only deals with programs that have standard uninstall programs available through the control panel, in which case it is compensating for deficiencies and bugs in that standard installation program. I don't see how it could work with a program that stores its configuration in a folder known only to the program and that doesn't touch the Registry. Such a program would not use a standard uninstall program, but would have its own, custom-built uninstall that Microsoft doesn't know anything about. Revo wouldn't know anything about it either. A well-behaved custom-built uninstall would use such .NET calls as the following:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
. Then it would append its own path within this standard location, but that appended path would be hard-coded in the program and its uninstall and not registered anywhere else. Such programs can have simple uninstalls, regardless of how complex the program configuration data is, because it's all contained within a single folder hierarchy which can be as deep and complex as is necessary. Then the only thing the uninstall program has to do is delete the folder containing its program files somewhere inc:\Program Files
followed by the deletion of its top level program configuration folder. The location of its program files would be stored somewhere in its program configuration folder. (NaturallyC:\Program Files
would not be hard-coded. It's path would be obtained from the following .NET call:Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
.) Of course there are other thifjparisIII wrote:
Why would one not choose to be as thorough as possible? Is there a danger in being "too thorough," a chance of removing something not associated with the program you want to uninstall? Or is Revo absolutely certain that everything it gives you a choice about was actually created for the program to run?
The perfection is not of this world. There always is a margin for errors, even for a well written program. What Revo does is to forbid you to delete things that it is sure do not belong to the program being uninstalled. It marks as deletable all what potentially belongs to that program. Then you have to apply your own judgment to remove the "delete this" flag from the items you recognize as being erroneously flagged. All of this imply a certain knowledge of how the registry is structured, and what the main entries are. If this scares you, then Revo is not the program for you. Uninstalling errant programs is more of an art than a science, and some sort of cooperation from the user is needed. But if you know what you are doing, Revo is a powerful tool in your hands.
-
fjparisIII wrote:
Why would one not choose to be as thorough as possible? Is there a danger in being "too thorough," a chance of removing something not associated with the program you want to uninstall? Or is Revo absolutely certain that everything it gives you a choice about was actually created for the program to run?
The perfection is not of this world. There always is a margin for errors, even for a well written program. What Revo does is to forbid you to delete things that it is sure do not belong to the program being uninstalled. It marks as deletable all what potentially belongs to that program. Then you have to apply your own judgment to remove the "delete this" flag from the items you recognize as being erroneously flagged. All of this imply a certain knowledge of how the registry is structured, and what the main entries are. If this scares you, then Revo is not the program for you. Uninstalling errant programs is more of an art than a science, and some sort of cooperation from the user is needed. But if you know what you are doing, Revo is a powerful tool in your hands.
I guess my point is that the standard Microsoft install/uninstall is fundamentally flawed. Otherwise we wouldn't even need programs like Revo. But it's firmly entrenched in the Microsoft world and is not likely to be replaced with an entirely different architecture that would solve these problems.
adibene wrote:
All of this imply a certain knowledge of how the registry is structured, and what the main entries are. If this scares you, then Revo is not the program for you.
I presume you're using the editorial "you." Personally, before Vista came out, I programmed the Registry forwards, backwards, and upside-down. I abandoned it because Microsoft itself started recommending not using it for program configuration. The Registry just got too bloated and proved to be too fragile. The Registry is now best reserved for system parameters that have nothing to do with application programs.