diff --git a/build/windows/MicrosoftEdgeWebview2Setup.exe b/build/windows/MicrosoftEdgeWebview2Setup.exe new file mode 100644 index 0000000..3fcefae Binary files /dev/null and b/build/windows/MicrosoftEdgeWebview2Setup.exe differ diff --git a/build/windows/installer.nsi b/build/windows/installer.nsi index 5aa8b2d..cc82983 100644 --- a/build/windows/installer.nsi +++ b/build/windows/installer.nsi @@ -12,7 +12,7 @@ RequestExecutionLevel admin !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$\nKlicken Sie auf Weiter, um fortzufahren." +!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 @@ -28,6 +28,30 @@ RequestExecutionLevel admin ; 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 @@ -35,9 +59,15 @@ Section "Speiseplan (erforderlich)" SecMain 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 @@ -57,7 +87,7 @@ SectionEnd ; Komponentenbeschreibungen !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} "Das Speiseplan-Programm (erforderlich)." + !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