!include "MUI2.nsh" ; Allgemein Name "Speiseplan" OutFile "Speiseplan-Setup.exe" InstallDir "$PROGRAMFILES\Speiseplan" InstallDirRegKey HKLM "Software\Speiseplan" "Install_Dir" RequestExecutionLevel admin ; UI !define MUI_ICON "icon.ico" !define MUI_UNICON "icon.ico" !define MUI_ABORTWARNING !define MUI_WELCOMEPAGE_TITLE "Speiseplan Setup" !define MUI_WELCOMEPAGE_TEXT "Dieses Programm installiert den Kita-Wochenspeiseplan auf Ihrem Computer.$\r$\n$\r$\nBenötigte Komponenten (WebView2) werden automatisch mitinstalliert.$\r$\n$\r$\nKlicken Sie auf Weiter, um fortzufahren." ; Seiten !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH ; Deinstallation !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ; Sprache !insertmacro MUI_LANGUAGE "German" ; WebView2 Check Funktion Function CheckWebView2 ; Prüfe ob WebView2 bereits installiert ist ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv" ${If} $0 == "" ReadRegStr $0 HKCU "SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv" ${EndIf} ${If} $0 == "" ; WebView2 nicht gefunden — installieren DetailPrint "WebView2 Runtime wird installiert..." SetOutPath "$TEMP" File "MicrosoftEdgeWebview2Setup.exe" ExecWait '"$TEMP\MicrosoftEdgeWebview2Setup.exe" /silent /install' $1 ${If} $1 != 0 MessageBox MB_OK|MB_ICONEXCLAMATION "WebView2 konnte nicht installiert werden (Fehler: $1).$\r$\nBitte installieren Sie es manuell von https://developer.microsoft.com/microsoft-edge/webview2/" ${Else} DetailPrint "WebView2 Runtime erfolgreich installiert." ${EndIf} Delete "$TEMP\MicrosoftEdgeWebview2Setup.exe" ${Else} DetailPrint "WebView2 Runtime bereits installiert (Version: $0)." ${EndIf} FunctionEnd ; Hauptinstallation Section "Speiseplan (erforderlich)" SecMain SectionIn RO SetOutPath $INSTDIR File "..\..\build\bin\speiseplan.exe" File "icon.ico" ; WebView2 prüfen und ggf. installieren Call CheckWebView2 ; Registry WriteRegStr HKLM "Software\Speiseplan" "Install_Dir" "$INSTDIR" WriteRegStr HKLM "Software\Speiseplan" "Version" "0.4.7" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "DisplayName" "Speiseplan" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "DisplayVersion" "0.4.7" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "Publisher" "Kita Ortrand" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "DisplayIcon" "$INSTDIR\icon.ico" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "NoRepair" 1 WriteUninstaller "$INSTDIR\uninstall.exe" ; Startmenü CreateDirectory "$SMPROGRAMS\Speiseplan" CreateShortCut "$SMPROGRAMS\Speiseplan\Speiseplan.lnk" "$INSTDIR\speiseplan.exe" "" "$INSTDIR\icon.ico" CreateShortCut "$SMPROGRAMS\Speiseplan\Deinstallieren.lnk" "$INSTDIR\uninstall.exe" SectionEnd ; Desktop-Verknüpfung (optional) Section "Desktop-Verknüpfung" SecDesktop CreateShortCut "$DESKTOP\Speiseplan.lnk" "$INSTDIR\speiseplan.exe" "" "$INSTDIR\icon.ico" SectionEnd ; Komponentenbeschreibungen !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} "Das Speiseplan-Programm (erforderlich). WebView2 wird automatisch mitinstalliert." !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "Erstellt eine Verknüpfung auf dem Desktop." !insertmacro MUI_FUNCTION_DESCRIPTION_END ; Deinstallation Section "Uninstall" Delete "$INSTDIR\speiseplan.exe" Delete "$INSTDIR\icon.ico" Delete "$INSTDIR\uninstall.exe" RMDir "$INSTDIR" Delete "$SMPROGRAMS\Speiseplan\*.*" RMDir "$SMPROGRAMS\Speiseplan" Delete "$DESKTOP\Speiseplan.lnk" ; Datenbank löschen MessageBox MB_YESNO "Sollen die gespeicherten Daten (Speisepläne, Produkte) ebenfalls gelöscht werden?" IDYES deletedata IDNO skipdata deletedata: RMDir /r "$LOCALAPPDATA\Speiseplan" skipdata: DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" DeleteRegKey HKLM "Software\Speiseplan" SectionEnd