feat: initial commit
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
; Установщик «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"
|
||||
Reference in New Issue
Block a user