블로그 이미지
pgmr이상현
Instagram:sh_lee77 머신비전, YOLO, 영상처리, Deep Learning, 딥러닝

calendar

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

Notice

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로 설치중에 관리자권한으로 실행중인 앱을 닫을 수 있게됩니다.

 

정말 간단하게 끝날 수 있는 문제를 몇시간을 할애 했네요.. ㅎㅎ

 

구글링을 해보더라도 한글 자료는 찾지 못했었는데,

이 글을 찾아 보시는 분들은 조금이라도 편하셨으면 해서 포스팅 해봅니다.

 

감사합니다.

 

 

 

posted by pgmr이상현