-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArtNetController.iss
More file actions
149 lines (124 loc) · 5.14 KB
/
Copy pathArtNetController.iss
File metadata and controls
149 lines (124 loc) · 5.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
; Inno Setup Script for DMX Master LTS 0.0.3
; Professional Art-Net Lighting Controller Installer
; Version 0.0.3 - Timeline Editor Enhancement
#define MyAppName "DMX Master LTS"
#define MyAppVersion "0.0.3"
#define MyAppPublisher "Cong Dinh Truong"
#define MyAppURL "https://github.com/truongcongdinh97/DMX-Master"
#define MyAppExeName "DMXMaster-LTS-0.0.3.exe"
#define MyAppDescription "Professional Art-Net Lighting Controller with License Tiers System"
[Setup]
; Application info
AppId={{DMX-MASTER-LTS-001-2026-03-10}}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
AppCopyright=Copyright (C) 2025 {#MyAppPublisher}
; Installation directories
DefaultDirName={autopf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
AllowNoIcons=yes
; Output
OutputDir=installer_output
OutputBaseFilename=DMX-Master-LTS-0.0.3-Setup
SetupIconFile=assets\DMXMaster.ico
Compression=lzma2/max
SolidCompression=yes
; Privileges
PrivilegesRequired=admin
PrivilegesRequiredOverridesAllowed=dialog
; UI
WizardStyle=modern
UninstallDisplayIcon={app}\{#MyAppExeName}
; WizardImageFile=assets\installer\wizard-image.bmp
; WizardSmallImageFile=assets\installer\wizard-small.bmp
; Version info
VersionInfoVersion={#MyAppVersion}.0
VersionInfoCompany={#MyAppPublisher}
VersionInfoDescription={#MyAppDescription} Installer
VersionInfoCopyright=Copyright (C) 2025 {#MyAppPublisher}
VersionInfoProductName={#MyAppName}
VersionInfoProductVersion={#MyAppVersion}
; License and info
LicenseFile=LICENSE.txt
; InfoAfterFile=INSTALLATION_INFO.txt
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
[Files]
; Main executable
Source: "dist\DMXMaster-LTS-0.0.3.exe"; DestDir: "{app}"; Flags: ignoreversion
; Default shows and data (for copying to AppData on first run)
Source: "data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs
; Assets (icons, images)
Source: "assets\*"; DestDir: "{app}\assets"; Flags: ignoreversion recursesubdirs createallsubdirs
; Documentation
Source: "README.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "CHANGELOG.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "docs\*"; DestDir: "{app}\docs"; Flags: ignoreversion recursesubdirs createallsubdirs
; Requirements and source (optional - for advanced users)
Source: "requirements.txt"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
; Start Menu
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Comment: "{#MyAppDescription}"
Name: "{group}\{#MyAppName} Documentation"; Filename: "{app}\docs\INDEX.md"; Comment: "User Guide and Documentation"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
; Desktop icon (if selected)
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Comment: "{#MyAppDescription}"; Tasks: desktopicon
; Quick Launch icon (if selected)
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[Run]
; Option to launch after installation
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
; Option to view documentation
Filename: "{app}\README.md"; Description: "View README and Getting Started Guide"; Flags: postinstall skipifsilent shellexec unchecked
[UninstallDelete]
; Clean up application files only (user data is in AppData)
Type: filesandordirs; Name: "{app}\data"
Type: filesandordirs; Name: "{app}\assets"
Type: filesandordirs; Name: "{app}\docs"
[Code]
{ Custom installation logic }
// Check Windows version
function InitializeSetup(): Boolean;
begin
// Require Windows 10 or later
if not (GetWindowsVersion >= $0A000000) then
begin
MsgBox('DMX Master LTS requires Windows 10 or later.', mbError, MB_OK);
Result := False;
end
else
Result := True;
end;
// Post-installation tasks
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
// No longer need to create directories here
// Application creates all data directories in AppData on first run
end;
end;
// Pre-uninstall cleanup
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
// User data (shows, recordings, config, logs) are in AppData
// Show message about how to clean AppData if needed
MsgBox('DMX Master has been uninstalled.' + #13#10 + #13#10 +
'Your shows, recordings, and settings are preserved in:' + #13#10 +
'%LOCALAPPDATA%\DMX Master LTS' + #13#10 + #13#10 +
'To completely remove all data, manually delete that folder.',
mbInformation, MB_OK);
end;
end;