[Setup] AppName=Chepuhagram AppVersion=2.0.3 DefaultDirName={userappdata}\ArturKarasevich\Chepuhagram UsePreviousAppDir=no DefaultGroupName=Chepuhagram AppPublisher=ArturKarasevich OutputDir=/ OutputBaseFilename=chepuhagram_setup Compression=lzma SolidCompression=yes PrivilegesRequired=lowest [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Files] ; Укажите полный путь к папке Release или файлы в ней Source: "D:\FlutterProjects\chepuhagram\build\windows\x64\runner\Release\chepuhagram.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\FlutterProjects\chepuhagram\build\windows\x64\runner\Release\ffmpeg.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\FlutterProjects\chepuhagram\build\windows\x64\runner\Release\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs Source: "D:\FlutterProjects\chepuhagram\build\windows\x64\runner\Release\*.dll"; DestDir: "{app}"; Flags: ignoreversion [Registry] Root: HKCU; Subkey: "Software\ArturKarasevich\Chepuhagram"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}" [Icons] ; Ярлык в меню Пуск (привязан к задаче startmenuicon) Name: "{group}\Chepuhagram"; Filename: "{app}\chepuhagram.exe"; Tasks: startmenuicon ; Ярлык на рабочем столе (привязан к задаче desktopicon) Name: "{userdesktop}\Chepuhagram"; Filename: "{app}\chepuhagram.exe"; Tasks: desktopicon [Run] ; Автозапуск после установки (привязан к задаче launchapp) Filename: "{app}\chepuhagram.exe"; Description: "Запустить Chepuhagram"; Flags: nowait postinstall skipifsilent; [Tasks] Name: "desktopicon"; Description: "Создать ярлык на Рабочем столе"; GroupDescription: "Дополнительные ярлыки:" Name: "startmenuicon"; Description: "Создать ярлык в меню «Пуск»"; GroupDescription: "Дополнительные ярлыки:" [Code] // --- Логика обновления (/update) --- procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if (CurStep = ssInstall) and (ExpandConstant('{param:update|false}') = 'true') then begin // Принудительное закрытие мессенджера перед обновлением Exec('taskkill', '/F /IM chepuhagram.exe /T', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); end; end; // --- Автоматическое определение темы и запись конфига --- function IsDarkMode: Boolean; var Value: Cardinal; begin if RegQueryDWordValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Themes\Personalize', 'AppsUseLightTheme', Value) then Result := (Value = 0) else Result := False; end; procedure SaveConfig; var ConfigPath: String; ConfigContent: String; ThemeStr: String; begin if IsDarkMode then ThemeStr := 'dark' else ThemeStr := 'light'; ConfigPath := ExpandConstant('{app}\config.json'); // Цвет по умолчанию, так как GUI убран ConfigContent := '{"accent_color": "blue", "theme": "' + ThemeStr + '"}'; SaveStringToFile(ConfigPath, ConfigContent, False); end; procedure CurStepChangedAfter(CurStep: TSetupStep); begin if CurStep = ssPostInstall then SaveConfig; end;