2024. 2. 20. 16:16
Project
안녕하세요, 이상현입니다.
Inno Setup을 이용하여, 여러 프로젝트를 패키징하여 설치 해보는 도중에,
정말 도움이 될만한 정보가 있어 공유드립니다.
Installer로 어떠한 프로젝트를 설치 및 제거시에 이미 프로그램이 실행중이라면,
프로세스를 종료하고 설치하라는 에러 메세지가 나오는 경우가 발생할 것 입니다.
보통은
[Code] 섹션에 Taskkill을 통해서 아래와 같이 실행중인 프로세스를 종료시킬 것입니다.
function InitializeUninstall: Boolean;
var
ErrorCode: Integer;
begin
ShellExec('open', 'taskkill.exe', '/f /im {#MyAppExeName}','',SW_HIDE,ewNoWait,ErrorCode);
Result := True;
end;
function InitializeSetup: Boolean;
var
ErrorCode: Integer;
begin
ShellExec('open', 'taskkill.exe', '/f /im {#MyAppExeName}','',SW_HIDE,ewNoWait,ErrorCode);
Result := True;
end;
그런데, 이렇게 함에도 불구하고 일반적으로 실행한 프로세스가 아닌,
관리자 권한으로 실행중인 프로세스는 종료되지 않을 것 입니다.
이때 프로세스를 종료하기 위해서 정말 많은 자료를 찾아봤지만, 가장 간단하고 강력한 방법을 소개 드리겠습니다.
[Setup] 섹션에
CloseApplications=force
위 한줄만 추가해주더라도 Installer로 설치중에 관리자권한으로 실행중인 앱을 닫을 수 있게됩니다.
정말 간단하게 끝날 수 있는 문제를 몇시간을 할애 했네요.. ㅎㅎ
구글링을 해보더라도 한글 자료는 찾지 못했었는데,
이 글을 찾아 보시는 분들은 조금이라도 편하셨으면 해서 포스팅 해봅니다.
감사합니다.
'Project' 카테고리의 다른 글
Inno Setup을 이용해 내 Project를 Installer설치파일로 만들기-2(Packaging 진행) (2) | 2023.11.30 |
---|---|
Inno Setup을 이용해 내 Project를 Installer설치파일로 만들기-1(Packaging을 해야하는 이유) (1) | 2023.11.27 |
문맹 청각장애인을 위한 AI 수화 번역 어플리케이션 (17) | 2019.12.07 |