-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathInnoScript.iss
122 lines (108 loc) · 4.63 KB
/
InnoScript.iss
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
#define ScriptVersion "2.4.1"
[Setup]
AppName=WinYandexMusicRPC
AppPublisher=FozerG
AppVersion={#ScriptVersion}
DefaultDirName={pf}\WinYandexMusicRPC
DefaultGroupName=WinYandexMusicRPC
OutputDir=dist
AppId=WinYandexMusicRPC
OutputBaseFilename=WinYandexMusicRPC_Installer_{#ScriptVersion}
Compression=lzma
SolidCompression=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
ShowLanguageDialog=no
SetupIconFile=assets\YMRPC_ico.ico
WizardImageFile=assets\YMRPC_large_bmp.bmp
WizardSmallImageFile=assets\YMRPC_bmp.bmp
WizardImageAlphaFormat=defined
PrivilegesRequired=admin
UninstallDisplayIcon={app}\WinYandexMusicRPC.exe
Uninstallable=yes
AllowRootDirectory=no
AlwaysRestart=no
MinVersion=10.0.17763
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "english"; MessagesFile: "compiler:Default.isl"
[CustomMessages]
english.RunDescription=Run WinYandexMusicRPC
english.CreateDesktop=Create a desktop icon
english.AdditionalTasks=Additional tasks
russian.RunDescription=Запустить WinYandexMusicRPC
russian.CreateDesktop=Создать значок на рабочем столе
russian.AdditionalTasks=Дополнительные задачи
[Files]
Source: "dist\WinYandexMusicRPC-cli\WinYandexMusicRPC.exe"; DestDir: "{pf}\WinYandexMusicRPC"; Flags: ignoreversion
Source: "dist\WinYandexMusicRPC-cli\_internal\*"; DestDir: "{pf}\WinYandexMusicRPC\_internal"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{group}\WinYandexMusicRPC"; Filename: "{pf}\WinYandexMusicRPC\WinYandexMusicRPC.exe"
Name: "{autodesktop}\WinYandexMusicRPC"; Filename: "{pf}\WinYandexMusicRPC\WinYandexMusicRPC.exe"; Tasks: desktopicon
[Code]
procedure UninstallPreviousVersion; //Удаление версии 2.4, так как установка в AppData оказалась неудачным решением.
var
OldUninstallString: string;
ResultCode: Integer;
begin
if RegQueryStringValue(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{9b1a69af-4040-4080-8afd-97131cba7e21}}_is1', 'UninstallString', OldUninstallString) then
begin
Log('Обнаружена предыдущая версия. Запуск деинсталляции...');
if (Pos('"', OldUninstallString) = 1) and (Copy(OldUninstallString, Length(OldUninstallString), 1) = '"') then
OldUninstallString := Copy(OldUninstallString, 2, Length(OldUninstallString) - 2);
if Exec(OldUninstallString, '/VERYSILENT /SUPPRESSMSGBOXES', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
Log('Деинсталляция предыдущей версии завершена успешно.')
else
Log('Ошибка при деинсталляции предыдущей версии. Код результата: ' + IntToStr(ResultCode));
end
else
begin
Log('Предыдущая версия не обнаружена.');
end;
end;
procedure DeleteStartupShortcut;
var
StartupShortcut: string;
begin
// Получаем путь к ярлыку в автозагрузке
StartupShortcut := ExpandConstant('{userappdata}\Microsoft\Windows\Start Menu\Programs\Startup\YaMusicRPC.lnk');
// Проверяем, существует ли ярлык, и удаляем его, если он есть
if FileExists(StartupShortcut) then
begin
DeleteFile(StartupShortcut);
end;
end;
procedure DeleteRegistryEntry;
var
RunKey: string;
begin
// Определяем путь к ключу реестра
RunKey := 'Software\Microsoft\Windows\CurrentVersion\Run';
// Проверяем, существует ли запись реестра, и удаляем её, если она есть
if RegValueExists(HKEY_CURRENT_USER, RunKey, 'YaMusicRPC') then
begin
RegDeleteValue(HKEY_CURRENT_USER, RunKey, 'YaMusicRPC');
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
// Выполняем действия только после завершения удаления программы
if CurUninstallStep = usPostUninstall then
begin
DeleteStartupShortcut;
DeleteRegistryEntry;
end;
end;
procedure InitializeWizard;
begin
UninstallPreviousVersion;
end;
[Run]
Filename: "{pf}\WinYandexMusicRPC\WinYandexMusicRPC.exe"; Description: "{cm:RunDescription}"; Flags: nowait postinstall skipifsilent
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktop}"; GroupDescription: "{cm:AdditionalTasks}"
[UninstallDelete]
Type: files; Name: "{pf}\WinYandexMusicRPC\_internal\*"
Type: dirifempty; Name: "{pf}\WinYandexMusicRPC\_internal"
Type: files; Name: "{pf}\WinYandexMusicRPC\WinYandexMusicRPC.exe"
Type: dirifempty; Name: "{pf}\WinYandexMusicRPC"