Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. When is an uninstall not an uninstall?

When is an uninstall not an uninstall?

Scheduled Pinned Locked Moved The Lounge
beta-testingquestionannouncement
23 Posts 14 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A adibene

    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 !

    F Offline
    F Offline
    fjparisIII
    wrote on last edited by
    #21

    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 in c:\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. (Naturally C:\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

    A 1 Reply Last reply
    0
    • F fjparisIII

      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 in c:\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. (Naturally C:\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

      A Offline
      A Offline
      adibene
      wrote on last edited by
      #22

      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.

      F 1 Reply Last reply
      0
      • A adibene

        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.

        F Offline
        F Offline
        fjparisIII
        wrote on last edited by
        #23

        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.

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups