summaryrefslogtreecommitdiff
path: root/distribution/win32/nsis/uninstall.nsh
blob: 3f475864eef8bd91d02a14aebdf89755c188b997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
;
; additional uninstaller instructions
;

; Remove file association xtc
  !define Index "Line${__LINE__}"
  ReadRegStr $1 HKCR ".xtc" ""
  StrCmp $1 "XTrackCAD.Design" 0 "${Index}-NoOwn" ; only do this if we own it
    ReadRegStr $1 HKCR ".xtc" "backup_val"
    StrCmp $1 "" 0 "${Index}-Restore" ; if backup="" then delete the whole key
      DeleteRegKey HKCR ".xtc"
      Goto "${Index}-NoOwn"
    "${Index}-Restore:"
      WriteRegStr HKCR ".xtc" "" $1
      DeleteRegValue HKCR ".xtc" "backup_val"

"${Index}-NoOwn:"
; Remove file association xtce
  !define /redef Index "Line${__LINE__}"
  ReadRegStr $1 HKCR ".xtce" ""
  StrCmp $1 "XTrackCAD.Design" 0 "${Index}-NoOwn" ; only do this if we own it
    ReadRegStr $1 HKCR ".xtce" "backup_xtce"
    StrCmp $1 "" 0 "${Index}-Restore" ; if backup="" then delete the whole key
      DeleteRegKey HKCR ".xtce"
      Goto "${Index}-NoOwn"
    "${Index}-Restore:"
      WriteRegStr HKCR ".xtce" "" $1
      DeleteRegValue HKCR ".xtce" "backup_xtce"

  DeleteRegKey HKCR "XTrackCAD.Design" ;Delete key with association settings

  System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'
  "${Index}-NoOwn:"
  !undef Index

; Remove shortcuts, if any
SetShellVarContext all

!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
RMDir /r "$SMPROGRAMS\$MUI_TEMP"
Delete "$desktop\XTrackCAD.lnk"