100 lines
4.3 KiB
Plaintext
100 lines
4.3 KiB
Plaintext
; Установщик «System Helper» для Windows x64.
|
|
; Сборка: ISCC.exe /DAppVersion=0.1.0 installer\setup.iss
|
|
; Результат кладётся в dist\syshelper-<версия>-setup.exe
|
|
|
|
#ifndef AppVersion
|
|
#define AppVersion "0.0.0-dev"
|
|
#endif
|
|
|
|
#ifndef ExeSource
|
|
#define ExeSource "..\target\release\syshelper.exe"
|
|
#endif
|
|
|
|
#define AppName "System Helper"
|
|
#define AppExeName "syshelper.exe"
|
|
#define AppUrl "http://127.0.0.1:8787"
|
|
; Имя задачи автообновления — должно совпадать с TASK_NAME в src/update.rs.
|
|
#define TaskName "SysHelperUpdate"
|
|
|
|
[Setup]
|
|
; AppId определяет программу при обновлении и удалении — не менять между версиями.
|
|
AppId={{B3F1C0A2-7E5D-4A19-9C3B-2D8E6F4A1B57}
|
|
AppName={#AppName}
|
|
AppVersion={#AppVersion}
|
|
AppVerName={#AppName} {#AppVersion}
|
|
DefaultDirName={autopf}\SysHelper
|
|
DefaultGroupName={#AppName}
|
|
DisableProgramGroupPage=yes
|
|
UninstallDisplayName={#AppName}
|
|
UninstallDisplayIcon={app}\{#AppExeName}
|
|
|
|
OutputDir=..\dist
|
|
OutputBaseFilename=syshelper-{#AppVersion}-setup
|
|
Compression=lzma2/max
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
|
|
; Ставим в 64-битный Program Files; программа собрана только под x64.
|
|
ArchitecturesAllowed=x64compatible
|
|
ArchitecturesInstallIn64BitMode=x64compatible
|
|
|
|
; Program Files и автозапуск через HKLM требуют администратора.
|
|
PrivilegesRequired=admin
|
|
CloseApplications=yes
|
|
RestartApplications=no
|
|
|
|
[Languages]
|
|
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
|
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
|
|
|
[Tasks]
|
|
Name: "autostart"; \
|
|
Description: "Запускать при входе в систему"; \
|
|
GroupDescription: "Дополнительно:"
|
|
Name: "desktopicon"; \
|
|
Description: "{cm:CreateDesktopIcon}"; \
|
|
GroupDescription: "Дополнительно:"; \
|
|
Flags: unchecked
|
|
|
|
[Dirs]
|
|
; Сюда работающая от пользователя программа кладёт скачанный установщик, а
|
|
; задача Планировщика (от SYSTEM) забирает его. Нужен доступ на запись обоим.
|
|
Name: "{commonappdata}\SysHelper\update"; Permissions: users-modify
|
|
|
|
[Files]
|
|
Source: "{#ExeSource}"; DestDir: "{app}"; Flags: ignoreversion
|
|
|
|
[Icons]
|
|
Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}"
|
|
Name: "{group}\Веб-панель"; Filename: "{#AppUrl}"
|
|
Name: "{autodesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon
|
|
|
|
[Registry]
|
|
; Автозапуск для всех пользователей. Запускается без повышения прав —
|
|
; этого хватает, чтобы завершать процессы того же пользователя.
|
|
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; \
|
|
ValueType: string; ValueName: "SysHelper"; \
|
|
ValueData: """{app}\{#AppExeName}"""; \
|
|
Flags: uninsdeletevalue; Tasks: autostart
|
|
|
|
[Run]
|
|
; Задача автообновления: программа скачивает свежий установщик и просит
|
|
; Планировщик запустить его от SYSTEM с наивысшими правами — так обновление
|
|
; ставится тихо, без запроса UAC. Своего расписания у задачи нет (SC ONCE в
|
|
; прошлом), её лишь запускают по требованию из программы.
|
|
Filename: "{sys}\schtasks.exe"; \
|
|
Parameters: "/Create /F /RU SYSTEM /RL HIGHEST /SC ONCE /SD 01/01/2000 /ST 00:00 /TN ""{#TaskName}"" /TR ""{commonappdata}\SysHelper\update\setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /NOCANCEL"""; \
|
|
Flags: runhidden; StatusMsg: "Настройка автообновления..."
|
|
Filename: "{app}\{#AppExeName}"; \
|
|
Description: "Запустить {#AppName}"; \
|
|
Flags: nowait postinstall skipifsilent
|
|
Filename: "{#AppUrl}"; \
|
|
Description: "Открыть веб-панель"; \
|
|
Flags: shellexec nowait postinstall skipifsilent
|
|
|
|
[UninstallRun]
|
|
Filename: "{sys}\schtasks.exe"; Parameters: "/Delete /F /TN ""{#TaskName}"""; \
|
|
Flags: runhidden; RunOnceId: "DelUpdateTask"
|
|
Filename: "{sys}\taskkill.exe"; Parameters: "/f /im {#AppExeName}"; \
|
|
Flags: runhidden; RunOnceId: "StopApp"
|