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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
# NOTE: UTF-8 BOM is required to Unicode work correctly
Unicode true
!include "MUI.nsh"
Name "KShutdown"
OutFile "kshutdown-${APP_VERSION}-win32.exe"
InstallDir "$PROGRAMFILES\KShutdown"
InstallDirRegKey HKCU "Software\kshutdown.sf.net" ""
SetCompressor /SOLID lzma
BrandingText "Segfault Install System"
ManifestDPIAware true
!define APP_UNINSTALL_REG "Software\Microsoft\Windows\CurrentVersion\Uninstall\KShutdown"
!define MUI_ABORTWARNING
!define MUI_COMPONENTSPAGE_NODESC
# GNU GPL is not an EULA
#!define MUI_LICENSEPAGE_TEXT_TOP "tl;dr https://www.tldrlegal.com/license/gnu-general-public-license-v2"
#!insertmacro MUI_PAGE_LICENSE "LICENSE"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section "-"
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIR\uninstall.exe"
WriteRegStr HKCU "Software\kshutdown.sf.net" "" $INSTDIR
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\kshutdown.exe" "" "$INSTDIR\kshutdown.exe"
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "DisplayIcon" "$INSTDIR\kshutdown.ico"
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "DisplayName" "KShutdown"
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "DisplayVersion" "${APP_VERSION}"
WriteRegDWORD HKLM "${APP_UNINSTALL_REG}" "NoModify" 1
WriteRegDWORD HKLM "${APP_UNINSTALL_REG}" "NoRepair" 1
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "Publisher" "Konrad Twardowski"
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "URLInfoAbout" "https://kshutdown.sourceforge.io/"
WriteRegStr HKLM "${APP_UNINSTALL_REG}" "URLUpdateInfo" "https://kshutdown.sourceforge.io/download.html"
File /r /x kshutdown.exe "kshutdown-portable\*.*"
File src\images\kshutdown.ico
File src\release\kshutdown.exe
SetShellVarContext all
CreateShortCut "$SMPROGRAMS\KShutdown.lnk" "$INSTDIR\kshutdown.exe" "" "$INSTDIR\kshutdown.ico"
SectionEnd
# TODO: remember if option was checked in case of reinstallation
Section /o "Autostart with Windows" SectionAutostart
SetShellVarContext all
IfSilent NoAutostart
CreateDirectory "$SMSTARTUP"
# TODO: rename Autostart link
CreateShortCut "$SMSTARTUP\KShutdown.lnk" "$INSTDIR\kshutdown.exe" "--init" "$INSTDIR\kshutdown.ico"
NoAutostart:
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\kshutdown.exe"
Delete "$INSTDIR\kshutdown.ico"
Delete "$INSTDIR\LICENSE.txt"
Delete "$INSTDIR\README.html"
# Qt 6.x stuff:
Delete "$INSTDIR\D3Dcompiler_47.dll"
Delete "$INSTDIR\libgcc_s_seh-1.dll"
Delete "$INSTDIR\Qt6Core.dll"
Delete "$INSTDIR\Qt6Gui.dll"
Delete "$INSTDIR\Qt6Widgets.dll"
# Qt 5.x stuff (older install):
Delete "$INSTDIR\libgcc_s_dw2-1.dll"
Delete "$INSTDIR\libstdc++-6.dll"
Delete "$INSTDIR\libwinpthread-1.dll"
Delete "$INSTDIR\Qt5Core.dll"
Delete "$INSTDIR\Qt5Gui.dll"
Delete "$INSTDIR\Qt5Widgets.dll"
Delete "$INSTDIR\Qt5WinExtras.dll"
# Qt 4.x stuff (older install):
Delete "$INSTDIR\mingwm10.dll"
Delete "$INSTDIR\QtCore4.dll"
Delete "$INSTDIR\QtGui4.dll"
Delete "$INSTDIR\platforms\qwindows.dll"
RMDir "$INSTDIR\platforms"
Delete "$INSTDIR\styles\qwindowsvistastyle.dll"
RMDir "$INSTDIR\styles"
Delete "$INSTDIR\translations\*.qm"
RMDir "$INSTDIR\translations"
# Remove files from older versions, too:
Delete "$INSTDIR\LICENSE"
Delete "$INSTDIR\uninstall.exe"
RMDir "$INSTDIR"
MessageBox MB_YESNO "Remove KShutdown settings?$\n$\nRegistry entry:$\nHKEY_CURRENT_USER\Software\kshutdown.sf.net" IDNO NoSettingsRemove
DeleteRegKey HKCU "Software\kshutdown.sf.net"
NoSettingsRemove:
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\kshutdown.exe"
DeleteRegKey HKLM "${APP_UNINSTALL_REG}"
SetShellVarContext all
Delete "$DESKTOP\KShutdown.lnk"
Delete "$SMPROGRAMS\KShutdown.lnk"
Delete "$SMSTARTUP\KShutdown.lnk"
SectionEnd
|