Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
|
@ -0,0 +1,115 @@
|
|||
|
||||
|
||||
|
||||
[Code]
|
||||
|
||||
function GetAppPath(AppId: String; IsWow64: Boolean): String;
|
||||
var
|
||||
AppPath: String;
|
||||
begin
|
||||
Result := '';
|
||||
AppPath := '';
|
||||
if IsWow64 then
|
||||
begin
|
||||
RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\' + AppId + '_is1', 'Inno Setup: App Path', AppPath)
|
||||
end
|
||||
else
|
||||
begin
|
||||
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + AppId + '_is1', 'Inno Setup: App Path', AppPath)
|
||||
end;
|
||||
Result := AppPath;
|
||||
end;
|
||||
|
||||
function GetUninstallCommand(AppId: String; IsWow64: Boolean): String;
|
||||
var
|
||||
UninstallCommand: String;
|
||||
begin
|
||||
Result := '';
|
||||
UninstallCommand := '';
|
||||
if IsWow64 then
|
||||
begin
|
||||
RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\' + AppId + '_is1', 'UninstallString', UninstallCommand)
|
||||
end
|
||||
else
|
||||
begin
|
||||
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + AppId + '_is1', 'UninstallString', UninstallCommand)
|
||||
end;
|
||||
Result := UninstallCommand;
|
||||
end;
|
||||
|
||||
function Uninstall(AppId: String; IsWow64: Boolean): Boolean;
|
||||
var
|
||||
UninstallCommand: String;
|
||||
ResultCode: Integer;
|
||||
begin
|
||||
Result := False;
|
||||
UninstallCommand := GetUninstallCommand(AppId, IsWow64);
|
||||
if UninstallCommand <> '' then
|
||||
begin
|
||||
ResultCode := 0;
|
||||
if Exec(RemoveQuotes(UninstallCommand), '/SILENT /NORESTART /SUPPRESSMSGBOXES', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
|
||||
begin
|
||||
Result := True;
|
||||
end
|
||||
else
|
||||
begin
|
||||
SuppressibleMsgBox('There was a problem removing the previous OpenMPT installation.', mbInformation, MB_OK, IDOK);
|
||||
Result := False;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
function UninstallSingleArch: Boolean;
|
||||
var
|
||||
AppId_x86: String;
|
||||
AppId_amd64: String;
|
||||
Success: Boolean;
|
||||
begin
|
||||
Success := True;
|
||||
AppId_x86 := '{67903736-E9BB-4664-B148-F62BCAB4FA42}';
|
||||
AppId_amd64 := '{9814C59D-8CBE-4C38-8A5F-7BF9B4FFDA6D}';
|
||||
if IsWin64() then
|
||||
begin
|
||||
Success := Uninstall(AppId_amd64, False) and Success;
|
||||
Success := Uninstall(AppId_x86, True) and Success;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Success := Uninstall(AppId_x86, False) and Success;
|
||||
end;
|
||||
Result := Success;
|
||||
end;
|
||||
|
||||
function GetPreviousSingleArchInstallPath: String;
|
||||
var
|
||||
AppId_x86: String;
|
||||
AppId_amd64: String;
|
||||
AppPath: String;
|
||||
begin
|
||||
AppPath := '';
|
||||
AppId_x86 := '{67903736-E9BB-4664-B148-F62BCAB4FA42}';
|
||||
AppId_amd64 := '{9814C59D-8CBE-4C38-8A5F-7BF9B4FFDA6D}';
|
||||
if IsWin64() then
|
||||
begin
|
||||
if AppPath = '' then AppPath := GetAppPath(AppId_amd64, False);
|
||||
if AppPath = '' then AppPath := GetAppPath(AppId_x86, True);
|
||||
end
|
||||
else
|
||||
begin
|
||||
if AppPath = '' then AppPath := GetAppPath(AppId_x86, False);
|
||||
end;
|
||||
Result := AppPath;
|
||||
end;
|
||||
|
||||
function HasPreviousSingleArchInstallPath: Boolean;
|
||||
begin
|
||||
Result := GetPreviousSingleArchInstallPath() <> '';
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue