Chepuhagram/assets/installer.iss

84 lines
2.9 KiB
Plaintext

[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;