Skip to content

Commit 2382f1f

Browse files
committed
Fix: Uninstall previous version
1 parent 9fe6a32 commit 2382f1f

File tree

2 files changed

+62
-3
lines changed

2 files changed

+62
-3
lines changed

InnoSetup.iss

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
33

44
#define MyAppName "NETworkManager"
5-
#define MyAppVersion "2023.1.8.0"
5+
#define MyAppVersion "2023.2.16.0"
66
#define MyAppPublisher "BornToBeRoot"
77
#define MyAppURL "https://github.com/BornToBeRoot/NETworkManager/"
88
#define MyAppExeName "NETworkManager.exe"
@@ -69,3 +69,62 @@ Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: de
6969
[Run]
7070
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
7171

72+
[Code]
73+
{ ///////////////////////////////////////////////////////////////////// }
74+
function GetUninstallString(): String;
75+
var
76+
sUnInstPath: String;
77+
sUnInstallString: String;
78+
begin
79+
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
80+
sUnInstallString := '';
81+
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
82+
RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
83+
Result := sUnInstallString;
84+
end;
85+
86+
87+
{ ///////////////////////////////////////////////////////////////////// }
88+
function IsUpgrade(): Boolean;
89+
begin
90+
Result := (GetUninstallString() <> '');
91+
end;
92+
93+
94+
{ ///////////////////////////////////////////////////////////////////// }
95+
function UnInstallOldVersion(): Integer;
96+
var
97+
sUnInstallString: String;
98+
iResultCode: Integer;
99+
begin
100+
{ Return Values: }
101+
{ 1 - uninstall string is empty }
102+
{ 2 - error executing the UnInstallString }
103+
{ 3 - successfully executed the UnInstallString }
104+
105+
{ default return value }
106+
Result := 0;
107+
108+
{ get the uninstall string of the old app }
109+
sUnInstallString := GetUninstallString();
110+
if sUnInstallString <> '' then begin
111+
sUnInstallString := RemoveQuotes(sUnInstallString);
112+
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
113+
Result := 3
114+
else
115+
Result := 2;
116+
end else
117+
Result := 1;
118+
end;
119+
120+
{ ///////////////////////////////////////////////////////////////////// }
121+
procedure CurStepChanged(CurStep: TSetupStep);
122+
begin
123+
if (CurStep=ssInstall) then
124+
begin
125+
if (IsUpgrade()) then
126+
begin
127+
UnInstallOldVersion();
128+
end;
129+
end;
130+
end;

Source/GlobalAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
[assembly: AssemblyTrademark("")]
77
[assembly: AssemblyCulture("")]
88

9-
[assembly: AssemblyVersion("2023.2.5.0")]
10-
[assembly: AssemblyFileVersion("2023.2.5.0")]
9+
[assembly: AssemblyVersion("2023.2.16.0")]
10+
[assembly: AssemblyFileVersion("2023.2.16.0")]

0 commit comments

Comments
 (0)