NSIS에서 사용자 페이지를 추가하는 방법을 알아봅시다.
일단은 추가할 페이지를 디자인해야 하는데, HM NIS을 사용하는 것이 편합니다. 아마도 이글을 보시는 분들은 다들 설치를 하셨겠죠...
File-> New Install Options file
저는 아래와 같이 간단히 디자인을 했습니다.
이렇게 디자인한 내용은 ini 파일 형식으로 저장이 됩니다. 그리고 나중에 ini 파일 형식에서 사용자가 입력한 내용을 가져오게 됩니다.
.onInit 에서 아래의 두 줄을 추가합니다.
아래는 저의 예제입니다.
----------------------------------------------------------------------------------------------------------------------
저는 아래와 같이 간단히 디자인을 했습니다.
이렇게 디자인한 내용은 ini 파일 형식으로 저장이 됩니다. 그리고 나중에 ini 파일 형식에서 사용자가 입력한 내용을 가져오게 됩니다.
.onInit 에서 아래의 두 줄을 추가합니다.
InitPluginsDir
File /oname=$INSTDIR\AutoUGM_NSIS.ini "AutoUGM_NSIS.ini" ;ini을 Install 폴더에 복사
만든 페이지를 추가합니다.Page custom AutoUGM_NSIS AutoUGM_NSISLeave ; msapps폴더를 선택하는 화면
AutoUGM_NSIS 와 AutoUGM_NSIS는 페이지가 시작될 때 그리고 끝날 때 실행되는 함수이므로 함수를 추가해 줘야 합니다.아래는 저의 예제입니다.
Function AutoUGM_NSIS
Push ${TEMP1}
!insertmacro MUI_HEADER_TEXT 'mdlapps' 'ma 파일을 설치할 폴더를 선택하세요' ; 헤더에 나타낼 텍스트
InstallOptions::dialog "$INSTDIR\AutoUGM_NSIS.ini" ; 페이지를 화면에 보이게 됩니다.
Pop ${TEMP1}
Pop ${TEMP1}
FunctionEnd
Function AutoUGM_NSISLeave
ReadINIStr $hMdlApps_Folder "$INSTDIR\AutoUGM_NSIS.ini" "Field 2" "State" ;사용자가 입력한 내용을 ini 파일을 통해서 읽어옵니다.
; copy a ma file to mdlapps folder
File /oname=$hMdlApps_Folder\AutoUGMJ.ma "Backup\AutoUGMJ.ma"
FunctionEnd
== 실제 실행 모습 ==----------------------------------------------------------------------------------------------------------------------
사용자 페이지가 정상적으로 보여지는 듯 했습니다만,
제일 처음 설치할때 사용자 페이지가 보이지 않았습니니다.
사용자 페이지가 시작될 때 실행되는 함수 부분을 보면, $INSTDIR 부분의 사용자 페이지 정의 ini 파일을 가지고 사용자 페이지를 화면에 보여주게 되는데...
이 시점에는 사용자 페이지 정의 ini 파일이 $INSTDIR에 없기 때문에 사용자 정의 페이지가 보이지 않게 됩니다.
따라서 사용자 페이지가 시작 될때 실행되는 함수 첫 머리에 사용자 페이지 정의 ini 파일을 복사해주는 기능을 넣어주면 됩니다.
SetOutPath "$INSTDIR"
File /oname=$INSTDIR\AutoUGM_NSIS.ini "AutoUGM_NSIS.ini"
댓글
댓글 쓰기