; Inno Setup script for 学校订餐菜单生成器 ; Build with: iscc school-meal-setup.iss ; Prerequisites: Inno Setup 6.x (https://jrsoftware.org/isinfo.php) ; ; This script packages the PyInstaller output (dist/school-meal/) into a ; standard Windows installer with Start Menu shortcuts and uninstall support. [Setup] AppId={{B7E3A4F1-5D92-4C8A-9F6E-2A1B3C4D5E6F} AppName=学校订餐菜单生成器 AppVersion=1.0.0 AppPublisher=学校食堂管理 AppPublisherURL= DefaultDirName={autopf}\学校订餐菜单生成器 DefaultGroupName=学校订餐菜单生成器 OutputDir=installer OutputBaseFilename=学校订餐菜单生成器-安装包 SetupIconFile=app.ico Compression=lzma2/ultra64 SolidCompression=yes WizardStyle=modern PrivilegesRequired=lowest PrivilegesRequiredOverridesAllowed=dialog ArchitecturesAllowed=x64compatible ArchitecturesInstallIn64BitMode=x64compatible CloseApplications=force RestartApplications=no DisableProgramGroupPage=yes UninstallDisplayIcon={app}\app.ico LicenseFile= [Languages] Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "创建桌面快捷方式"; GroupDescription: "附加选项:"; Flags: checkedonce [Files] ; Main executable Source: "dist\school-meal\school-meal.exe"; DestDir: "{app}"; Flags: ignoreversion ; Database template (always updated — user data lives in %LOCALAPPDATA%) Source: "dist\school-meal\db.sqlite3"; DestDir: "{app}"; Flags: ignoreversion uninsneveruninstall ; All runtime dependencies Source: "dist\school-meal\_internal\*"; DestDir: "{app}\_internal"; Flags: ignoreversion recursesubdirs createallsubdirs ; Application icon (referenced by shortcuts and uninstall) Source: "app.ico"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; IconFilename: "{app}\app.ico" Name: "{group}\卸载 学校订餐菜单生成器"; Filename: "{uninstallexe}"; IconFilename: "{app}\app.ico" Name: "{autodesktop}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; Tasks: desktopicon; IconFilename: "{app}\app.ico" [Run] Filename: "{app}\school-meal.exe"; Description: "启动 菜单生成器"; Flags: nowait postinstall skipifsilent [Code] // Check if school-meal is already running before install/uninstall function InitializeSetup: Boolean; var ResultCode: Integer; begin Result := True; Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); end; function InitializeUninstall: Boolean; var ResultCode: Integer; begin Result := True; Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); end; function PrepareToInstall(var NeedsRestart: Boolean): String; var ResultCode: Integer; begin Result := ''; Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); end;