开发者

How do i add the program in windows add/remove program list

开发者 https://www.devze.com 2023-02-11 05:21 出处:网络
How do i add the program so that it is listed (so i can click on it to uninstall) in w开发者_JAVA技巧indows\'s add/remove program list?The uninstall registration is stored in the registry, where in th

How do i add the program so that it is listed (so i can click on it to uninstall) in w开发者_JAVA技巧indows's add/remove program list?


The uninstall registration is stored in the registry, where in the registry you should save it depends on if your installer installs the program for all users or a single user (IE your RequestExecutionLevel setting):

  • user = HKCU
  • admin = HKLM
  • highest = SHCTX (This means you must use SetShellVarContext correctly and also restore it correctly in the uninstaller)

There are only two values that are required: DisplayName and UninstallString.

!define REGUNINSTKEY "MyApplication" ;Using a GUID here is not a bad idea
!define REGHKEY HKLM ;Assuming RequestExecutionLevel admin AKA all user/machine install
!define REGPATH_WINUNINST "Software\Microsoft\Windows\CurrentVersion\Uninstall"

Section
WriteRegStr ${REGHKEY} "${REGPATH_WINUNINST}\${REGUNINSTKEY}" "DisplayName" "My application"
WriteRegStr ${REGHKEY} "${REGPATH_WINUNINST}\${REGUNINSTKEY}" "UninstallString" '"$INSTDIR\uninstaller.exe"'
SectionEnd

There are several optional values you can set, MSDN does not really provide a list of documented values but the NSIS Wiki has a decent list and this page has a even more complete list...


Example usage:

 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "DisplayName" "<Name>" ;The Name shown in the dialog
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "UninstallString" "$INSTDIR\<Path to uninstaller>"
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "InstallLocation" "$INSTDIR"
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "Publisher" "<Your Name>"
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "HelpLink" "<URL>"
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "DisplayVersion" "<Version>"
 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "NoModify" 1 ; The installers does not offer a possibility to modify the installation
 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "NoRepair" 1 ; The installers does not offer a possibility to repair the installation
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "ParentDisplayName" "<Parent>" ;
 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\<Name>" \
   "ParentKeyName" "<ParentKey>" ; The last two reg keys allow the mod to be shown as an update to another software. Leave them out if you don't like this behaviour
0

精彩评论

暂无评论...
验证码 换一张
取 消