Unicode True SetCompressor /SOLID lzma !include "MUI2.nsh" !ifndef APP_VERSION !define APP_VERSION "0.2.0" !endif !ifndef PUBLISH_DIR !error "PUBLISH_DIR is required" !endif !ifndef OUTPUT_DIR !error "OUTPUT_DIR is required" !endif !ifndef PROJECT_ROOT !error "PROJECT_ROOT is required" !endif !define APP_NAME "Krona Staff Terminal" !define APP_EXE "KronaStaffTerminal.exe" !define APP_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\KronaStaffTerminal" !define DRIVER_URL "https://www.zkteco.com/en/Biometrics_Module_SDK/ZKFinger-SDK-for-Windows" Name "${APP_NAME}" OutFile "${OUTPUT_DIR}\KronaStaffTerminal-Setup-${APP_VERSION}.exe" InstallDir "$LOCALAPPDATA\Programs\Krona Staff Terminal" InstallDirRegKey HKCU "${APP_REGISTRY_KEY}" "InstallLocation" RequestExecutionLevel user Icon "${PROJECT_ROOT}\apps\KronaStaffTerminal\Assets\AppIcon.ico" BrandingText "Krona" ShowInstDetails show ShowUninstDetails show VIProductVersion "${APP_VERSION}.0" VIAddVersionKey /LANG=1049 "ProductName" "${APP_NAME}" VIAddVersionKey /LANG=1049 "CompanyName" "Krona" VIAddVersionKey /LANG=1049 "LegalCopyright" "Copyright © 2026 Krona" VIAddVersionKey /LANG=1049 "FileDescription" "Установщик ${APP_NAME}" VIAddVersionKey /LANG=1049 "FileVersion" "${APP_VERSION}" VIAddVersionKey /LANG=1049 "ProductVersion" "${APP_VERSION}" !define MUI_ABORTWARNING !define MUI_ICON "${PROJECT_ROOT}\apps\KronaStaffTerminal\Assets\AppIcon.ico" !define MUI_UNICON "${PROJECT_ROOT}\apps\KronaStaffTerminal\Assets\AppIcon.ico" !define MUI_FINISHPAGE_RUN "$INSTDIR\${APP_EXE}" !define MUI_FINISHPAGE_RUN_TEXT "Запустить Krona Staff Terminal" !define MUI_FINISHPAGE_LINK "Скачать официальный драйвер ZKTeco/BioLink SLK20R" !define MUI_FINISHPAGE_LINK_LOCATION "${DRIVER_URL}" !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_LANGUAGE "Russian" Section "Krona Staff Terminal" SecMain SectionIn RO SetShellVarContext current SetOutPath "$INSTDIR" SetOverwrite try File /r "${PUBLISH_DIR}\*" WriteUninstaller "$INSTDIR\Uninstall.exe" CreateDirectory "$SMPROGRAMS\Krona" CreateShortcut "$SMPROGRAMS\Krona\Krona Staff Terminal.lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0 WriteRegStr HKCU "${APP_REGISTRY_KEY}" "DisplayName" "${APP_NAME}" WriteRegStr HKCU "${APP_REGISTRY_KEY}" "DisplayVersion" "${APP_VERSION}" WriteRegStr HKCU "${APP_REGISTRY_KEY}" "Publisher" "Krona" WriteRegStr HKCU "${APP_REGISTRY_KEY}" "InstallLocation" "$INSTDIR" WriteRegStr HKCU "${APP_REGISTRY_KEY}" "DisplayIcon" "$INSTDIR\${APP_EXE}" WriteRegStr HKCU "${APP_REGISTRY_KEY}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" WriteRegDWORD HKCU "${APP_REGISTRY_KEY}" "NoModify" 1 WriteRegDWORD HKCU "${APP_REGISTRY_KEY}" "NoRepair" 1 SectionEnd Section "Значок на рабочем столе" SecDesktop SetShellVarContext current CreateShortcut "$DESKTOP\Krona Staff Terminal.lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0 SectionEnd LangString DESC_SecMain ${LANG_RUSSIAN} "Основная программа учёта прихода и ухода." LangString DESC_SecDesktop ${LANG_RUSSIAN} "Создать значок программы на рабочем столе." !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} $(DESC_SecMain) !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop) !insertmacro MUI_FUNCTION_DESCRIPTION_END Section "Uninstall" SetShellVarContext current Delete "$DESKTOP\Krona Staff Terminal.lnk" Delete "$SMPROGRAMS\Krona\Krona Staff Terminal.lnk" RMDir "$SMPROGRAMS\Krona" DeleteRegKey HKCU "${APP_REGISTRY_KEY}" RMDir /r "$INSTDIR" SectionEnd