Add uninstall information to Add/Remove Programs: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Reverted edits by 87.1.14.10 to last version by 194.134.32.180)
Line 17: Line 17:
</highlight-nsis>
</highlight-nsis>


  355121
== Required values ==
 
*''DisplayName'' (string) - Name of the application
*''UninstallString'' (string) - Path and filename of the uninstaller. You should '''always''' quote the path to make sure spaces in the path will not disrupt Windows to find the uninstaller.
 
Consider this example. Your company is called 'Great Northern Software Co' and you are installing their latest super software 'Image Maker'. What you want to do is to have a new key created in the Software\Microsoft\Windows\CurrentVersion\Uninstall section of HKLM. The key will be the name of the software, and it will have two subkeys, one with the display name of the software and the other the location of the uninstall program.
 
<highlight-nsis>
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" \
                "DisplayName" "Image Maker -- super software from Great Northern"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" \
                "UninstallString" "$INSTDIR\uninstall.exe"
</highlight-nsis>
 
Once these are executed you will see the display name appear in the Add/Remove programs section of control panel.
 
Two things to point out. First, you must use backslashes. I do a lot of Java/Unix work, so I need to make this clear. And second, you should add a delete key command to your uninstaller section, so the name will be removed from the list when your uninstaller completes. If you don't do this your name will still be there, but windows will see this as a problem (ie it will say the entry is corrupt).
 
<highlight-nsis>
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker"
</highlight-nsis>


== Optional values ==
== Optional values ==

Revision as of 21:44, 28 November 2007

Author: Konrad (talk, contrib)


How To Use

Create a key with your product name under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall to add entries to the "Add/Remove Programs" section in the Control Panel.

For Windows NT (NT4/2000/XP), it's also possible to create the key in the HKCU hive, so it will only appear for the current user.

There are several values you can write to the key to give additional information about your application and the uninstaller.

Write a value using the WriteRegStr command (for strings) or WriteRegDWORD command (for DWORD values).

Example:

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Product" \
                 "DisplayName" "Application Name"

Required values

  • DisplayName (string) - Name of the application
  • UninstallString (string) - Path and filename of the uninstaller. You should always quote the path to make sure spaces in the path will not disrupt Windows to find the uninstaller.

Consider this example. Your company is called 'Great Northern Software Co' and you are installing their latest super software 'Image Maker'. What you want to do is to have a new key created in the Software\Microsoft\Windows\CurrentVersion\Uninstall section of HKLM. The key will be the name of the software, and it will have two subkeys, one with the display name of the software and the other the location of the uninstall program.

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" \
                 "DisplayName" "Image Maker -- super software from Great Northern"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" \
                 "UninstallString" "$INSTDIR\uninstall.exe"

Once these are executed you will see the display name appear in the Add/Remove programs section of control panel.

Two things to point out. First, you must use backslashes. I do a lot of Java/Unix work, so I need to make this clear. And second, you should add a delete key command to your uninstaller section, so the name will be removed from the list when your uninstaller completes. If you don't do this your name will still be there, but windows will see this as a problem (ie it will say the entry is corrupt).

DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker"

Optional values

Supported on: Windows XP, but note that is is perfectly allowed to add these entries to older versions of windows also, the additional info just does not show up.

  • InstallLocation (string) - Installation directory ($INSTDIR)
  • DisplayIcon (string) - Path, filename and index of of the icon that will be displayed next to your application name
  • Publisher (string) - (Company) name of the publisher
  • ModifyPath (string) - Path and filename of the application modify program
  • InstallSource (string) - Location where the application was installed from
  • ProductID (string) - Product ID of the application
  • RegOwner (string) - Registered owner of the application
  • RegCompany (string) - Registered company of the application
  • HelpLink (string) - Link to the support website
  • HelpTelephone (string) - Telephone number for support
  • URLUpdateInfo (string) - Link to the website for application updates
  • URLInfoAbout (string) - Link to the application home page
  • DisplayVersion (string) - Displayed version of the application
  • VersionMajor (DWORD) - Major version number of the application
  • VersionMinor (DWORD) - Minor version number of the application
  • NoModify (DWORD) - 1 if uninstaller has no option to modify the installed application
  • NoRepair (DWORD) - 1 if the uninstaller has no option to repair the installation
  • EstimatedSize (DWORD) - The size of the installed files (in KB)

If both NoModify and NoRepair are set to 1, the button displays "Remove" instead of "Modify/Remove".


Supported on: Windows XP Service Pack 2.

  • ParentKeyName (string) - If the program is an update of a parent program, specify the parent program subkey name. If "OperatingSystem", it's an update for Windows.
  • ParentDisplayName (string) - If the program is an update of a parent program, specify the parent program name (as specified on the parent's "DisplayName").