본문으로 바로가기

NSIS 스크립트를 통하여 바탕화면, 시작-프로그램 등의 위치에 바로가기 아이콘을 생성하고, 사용자 정의 아이콘으로 변경하는 방법에 대해 알아 본다.

아이콘 파일 준비하기

먼저 아이콘 파일을 준비해야 한다.

주로 포토샵과 같은 이미지 저작 도구를 사용하여 아이콘을 디자인 하거나 웹검색을 통해 특별한 라이선스가 없는 아이콘 파일을 구한다.

아이콘의 크기

직접 제작하고자 할 경우 다음과 같이 윈도우에서 사용하는 표준 아이콘의 크기를 참고하여 제작 한다. (참고: 위키백과 : ICO(파일 포맷))

  • 256 x 256 pixels - 32bit (24bit color, 8bit transparency)
  • 48 x 48 pixels - 32bit (24bit color, 8bit transparency)
  • 32 x 32 pixels - 32bit (24bit color, 8bit transparency)
  • 16 x 16 pixels - 32bit (24bit color, 8bit transparency)
아이콘 변환 (PNG > ICO)

아이콘을 만들기 위하여 다양한 방법이 있겠지만, 개인적으로 애용하는 방법은 (필요에 따라 투명 효과가 적용된) .PNG 파일로 만들어 CONVERTICO.COM 사이트를 통해 변환하는 방법을 사용한다.


사용 방법은 간단하다. 점선으로 표기된 "Drop your .png or .ico file here, ..." 영역에 .PNG 파일을 끌어 놓으면 변환 과정을 거쳐 다운 받을 수 있도록 기능을 제공한다.


아이콘을 디자인하기 위하여 주로 포토샵을 사용하는데, 포토샵도 플러그인을 사용하면 ICO 파일을 만들 수 있다.

다만 개인적으로 포토샵이 아닌 CONVERTICO 사이트를 사용하는 이유는 적용하는 PNG 크기에 따라 다양한 아이콘 크기를 포함한 하나의 파일로 생성해 주기 때문이다. (포토샵의 경우 하나의 사이즈를 가진 아이콘으로 생성이 된다.)

예를 들어 256 크기의 PNG를 아이콘으로 변환하면, 16/32/48/64/128/256 크기의 아이콘을 포함한 ICO 파일이 생성이 된다.

바로가기 아이콘 생성

배포자는 사용자의 편의를 위하여 바탕화면 또는 시작-프로그램에 바로가기 아이콘을 생성하기 위하여 CreateShortCut 명령을 사용하며 기본적인 형태는 다음과 같다.

CreateShortCut "바로가기_아이콘을_생성할_위치\바로가기_이름.lnk" "대상_위치\대상_파일이름"

바로가기 아이콘 생성 위치

시스템 경로와 관련하여 대부분의 경우 아래 두가지 정도가 사용된다.

  • $DESKTOP : 바탕화면
  • $SMPROGRAMS : 시작-프로그램
Section
  ; 바탕화면에 file_name.exe의 단축아이콘 ShortCut.lnk 생성
  CreateShortCut "$DESKTOPO\ShortCut.lnk" "$INSTDIR\file_name.exe"

  ; 시작-프로그램-Product_Name 폴더 아래 ShortCut.lnk 생성
  CreateShortCut "$SMPROGRAMS\Product_Name\ShortCut.lnk" "$INSTDIR\file_name.exe"
SectionEnd
Windows 7 등과 같이 관리자 권한이 강화된 OS의 경우 바탕화면 및 시작메뉴 접근을 위하여 RequestExecutionLevel admin 라인이 추가되어야 할 수도 있다.

바로가기 아이콘 변경

바로가기의 아이콘은 기본적으로 대상의 아이콘을 따라가게 된다. 만약 대상 파일이 별도의 아이콘을 가지고 있지 않거나 다른 아이콘으로 변경하기 위해서는 CreateShortCut의 확장 파라미터를 사용하여 변경할 수 있다.

CreateShortCut "링크이름.lnk" "링크대상" ["파라미터" ["아이콘.ico" ["아이콘번호" [실행_속성 [바로가기_키 [설명]]]]]]

각각의 옵션 항목을 보면 바로가기를 만드는데 필요한 옵션은 거의 다 포함하고 있다.

  • 링크이름.link : 바로가기를 생성하고자 하는 경로를 포함한 바로가기 이름
  • 링크대상 : 바로가기의 대상이 되는 경로를 포함한 파일 혹은 디렉터리 이름
  • 파라미터 : 바로가기의 대상의 파라미터
  • 아이콘.ico : 경로를 포함한 변경하고자 하는 아이콘
  • 아이콘번호 : 만약 아이콘이 다수의 아이콘을 포함하고 있다면 대상을 지정 (기본 0)
  • 실행_속성 : SW_SHOWNORMAL (기본창) | SW_SHOWMAXIMIZED (최대화) | SW_SHOWMINIMIZED (최소화)
  • 바로가기_키 : ALT, CONTROL, EXT, SHIFT와 문자(AZ, az, 0-9, F1-F24 등)를 "|" 사용하여 조합. (예. ALT|CONTROL|SHIFT|F5)
  • 설명 : 말 그대로 설명.
CreateShortCut "$DESKTOP\test.lnk" "$INSTDIR\test.txt" "" "$INSTDIR\change.ico" 0 SW_SHOWNORMAL "ALT|CONTROL|SHIFT|F5" "NSIS 바로가기 아이콘 변경 테스트를 위한 바로가기 파일임돠~"