Kill process before (re)install using "taskkill /f /im" in Inno Setup
I found a way using the BeforeInstall
parameter and a simple Pascal Script function in the code section. I added a string parameter so it can be reused for multiple processes.
[Files]
Source: "My Service 1.exe"; DestDir: "{app}"; Flags: ignoreversion; \
BeforeInstall: TaskKill('My Service 1.exe')
Source: "My Service 2.exe"; DestDir: "{app}"; Flags: ignoreversion; \
BeforeInstall: TaskKill('My Service 2.exe')
[Code]
procedure TaskKill(FileName: String);
var
ResultCode: Integer;
begin
Exec('taskkill.exe', '/f /im ' + '"' + FileName + '"', '', SW_HIDE,
ewWaitUntilTerminated, ResultCode);
end;
Unless the installer is running on a Windows XP machine, or you have set CloseApplications
directive to no
(the default is yes
), the installer should close the application automatically:
The functionality is available since Inno Setup 5.5 on Windows Vista and newer.
Though sometimes yes
is not enough, you need to use force
:
Installer created via Inno Setup, can't close applications during installation on Windows 10