2014년 4월 13일 일요일



NSIS(Nullsoft Scriptable Install System) 스크립트 기반 인스톨 시스템 

#Script Exam


#morden UI script exam



명령 : 한줄 명령. 한줄 연결 (\) 다음 줄까지 사용 
주석 : # 끝까지 /* */ 여러줄 
플러그인 : 추가 기능 plugin::command [parameters] 
숫자 : 10진수, 8진수, 16진수 가능 
문자열 : " " 공백포함 문자열 ',` 도 가능 문자열 안에 " 표현하고 싶을 경우 $\사용 
지정 문자 
$$ $문자 
$\r 캐리지 리턴 
$\n 다음줄 
$\t 탭 표시 
변수 : %Varoab;es 
길이문제 : 커맨드 시 한줄에 다 못입력할 경우 '\'을 통한 연결 


NSIS의 변수는 전역범위를 가짐 
Var varExam 

Function.onInit 
  Var /GLOBAL testing 

  strCpy $VarExam "Hello World" 
Functionend 
$로 변수명을 선언하진 않았지만 $를 꼭 넣어야 한다. 



이미 지정되어 의미를 가진 변수들 
$INSTDIR 인스톨 하기 위한 디렉토리 설정 
$OUTDIR 현재 만드는 인스톨 프로그램 저장 위치 
$CMDLINE 인스톨 프로그램 실행시 파라미터에 넘겨 줄때 값을 가짐 
$LANGUAGE 현재 사용하는 언어에 대한 인식을 위한 숫자 



상수 Window OS환경 값, 이미 지정 됨 
$PROGRAMFILES 기본 프로그램 인스톨 디렉토리 
$COMMONFILES common 파일이 들어 있는 디렉토리 
$DESKTOP 바탕화면 
$EXEDIR 인스톨 실행파일이 저장된디렉토리 
${NSISDIR} NSIS가 인스톨될 디렉토리 
$WINDIR 윈도우 디렉토리 
$SYSDIR 윈도우 시스템 디렉토리 
$TEMP 임시 디렉토리 
$STARTMENU 시작 메뉴 
$QUICKLAUNCH 빠른 시작 
$DOCUMENTS 내 문서 
$NETHOOD 네트워크 환경 객체 폴더 
$FONT 폰트 
$APPDATA 응용 프로그램 데이터 

Label : 실행되는 흐름을 label로 보냄 지역적으로 인식되며, function 및 section 내부에서 사용가능 

Relative Jump : 현재 위치 기준 몇 번째 instruction(명령)으로 이동할지 결정 
Instruction ex) MessageBox, Goto, GetDLLVersion, FileRead, SetShellVarContext 등 
AddSize, Section, SectionGroup, Name, LangString등은 인스톨러 컴파일시 실행되므로 instruction이 아님 

Page : NSIS는 페이지가 모여 전체 인스톨러를 구성한다. 
Page 페이지 추가 
UninstPage 언인스톨 페이지 추가 
PageEx 페이지를 더 자세히 작성 


Cf) 페이지 작성시 예전 버전과 호환성 때문에 Page 명령이 없는 경우 license, components, directory, instfiles등이 자동 포함 


Ref) 
http://blog.daum.net/fashionpersonal/6 
http://skql.tistory.com/507#recentTrackback 
http://www.cipher.pe.kr/tt/cipher/category/6 

0 개의 댓글:

댓글 쓰기