NSIS/Reference (17) 썸네일형 리스트형 [NSIS] 사설 인증서 등록 # 사용 예# Call Registering_Certificate_In_Trusted_Root_Certification_AuthoritiesFunction Registering_Certificate_In_Trusted_Root_Certification_Authorities # 사설 인증서 등록 (IE, 크롬, 사파리, 오페라) ${AddCertificateToStore} $0 "$VAR_INSTDIR\cert\${CERT_NAME_COMPANY_ROOT_AUTHORITY}" ${If} $0 != success MessageBox MB_OK "certificate import failed: $0" ${EndIf} ${AddCertificateToStore} $0 "$VAR_INSTDIR\cert\${CE.. [NSIS] 인증서 설치 # https://nsis.sourceforge.io/Import_Root_Certificate# 사용 예# ${AddCertificateToStore} $0 "$VAR_INSTDIR\rootcert.cer"!define CERT_QUERY_OBJECT_FILE 1!define CERT_QUERY_CONTENT_FLAG_ALL 16382!define CERT_QUERY_FORMAT_FLAG_ALL 14!define CERT_STORE_PROV_SYSTEM 10!define CERT_STORE_OPEN_EXISTING_FLAG 0x4000!define CERT_SYSTEM_STORE_LOCAL_MACHINE 0x20000!define CERT_STORE_ADD_ALWAYS 4!m.. [NSIS] 권한 상승 # https://nsis.sourceforge.io/UAC_plug-in!macro _UAC_Elevation un Function ${un}_UAC_Elevation Push $R0 Exch Pop $R0 uac_tryagain: !insertmacro UAC_RunElevated ${Switch} $0 ${Case} 0 ${IfThen} $1 = 1 ${|} Quit ${|} ;we are the outer process, the inner process has done its work, we are done ${IfThen} $3 0 ${|} ${Break} ${|} ;we are admin, let the show go on ${If} $1 = 3 ;RunAs compl.. [NSIS] 특수 경로 얻어오기 # 설치 경로에 '$'가 포함된 특수 경로이면 해당 경로를 찾아서 SetOutPath 설정, '$'가 포함되어 있지 않으면 들어온 경로 그대로 설정.# 호출 예# ${GetSpecialPathReplaced} '반환' '특수 경로가 포함된 경로'# ${GetSpecialPathReplaced} $0 "$DESKTOP\test"# $0 == '$DESKTOP 부분이 로컬 PC의 환경에 맞춰 경로를 얻어오고 나머지 뒷 부분은 그대로.'!define CSIDL_DESKTOP '0x0' # Desktop path ($DESKTOP)!define CSIDL_PROGRAMS '0x2' # Programs path!define CSIDL_PERSONAL '0x5' # My document pat.. [NSIS] 재배포 패키지 설치 여부 체크 후 설치하는 방법 아래 NSIS 스크립트? 에서 "Function InstallVCRedist_x86" 함수와 "Function CheckVCRedist_x86" 함수 그리고 "Function InstallVCRedist_x64", "Function CheckVCRedist_x64" 함수를 그대로 복사하여 사용하면 된다. (재배포 패키지 Product Code는 수정하여 사용.); Script generated by the HM NIS Edit Script Wizard.; HM NIS Edit Wizard helper defines!define PRODUCT_NAME "제품 이름"!define PRODUCT_VERSION "1.0.0.1"!define PRODUCT_PUBLISHER "회사이름 Co., LTD."!defi.. [NSIS] 32비트와 64비트 모듈 등록하는 법. (regsvr32) - 등록x86 환경에선 RegDLL "$SYSDIR\Test.ocx"처럼 RegDLL 뒤에 등록할 파일의 풀 경로를 입력해 주면 되고x64 환경에선 ExecWait '"$SYSDIR\regsvr32.exe" /s "$SYSDIR\Text_x64.ocx"' 처럼 regsvr32.exe 프로그램을 통해 등록한다.- 해제x86 환경에서 UnRegDLL "$SYSDIR\Test.ocx"x64 환경에선 ExecWait '"$SYSDIR\regsvr32.exe" /u /s "$SYSDIR\Test_x64.ocx"' ; Script generated by the HM NIS Edit Script Wizard.; HM NIS Edit Wizard helper defines!define PRODUCT_NAME "제품 .. [NSIS] 커맨드 라인 옵션 값 받아오기 + 사일런트 모드 설치 # Command Line 명령어를 받아오기 위해 추가.!include FileFunc.nsh!insertmacro GetParameters!insertmacro GetOptionsVAR /GLOBAL PARAM # 전역 변수 선언Function .onInit ${GetParameters} $PARAM ClearErrors ${GetOptions} $PARAM /SILENT= $PARAM # 여기에서 '/'뒤에 써주는 단어가 커맨드라인 옵션임. 예를 들어 "${GetOptions} $PARAM /TestInput= $PARAM" 이라고 하고, NSIN 빌드 결과 만들어지는 설치 파일 명이 "install.exe"라고 할 때, "install.exe /TestInput=입력값" 이라고 커맨드 라인에서 입력.. [NSIS] StrLower # 호출 예# ${StrLower} '반환' '원본 문자열'# ${StrLower} $0 $1# ${StrLower} $0 $0# ${StrLower} $0 "StRiNg"!macro _StrLower un Function ${un}_StrLower Exch $R0 # Original string Push $R1 # Final string Push $R2 # Current character Push $R3 Push $R4 StrCpy $R1 "" Loop: StrCpy $R2 $R0 1 # Get next character StrCmp $R2 "" Done StrCpy $R0 $R0 "" 1 StrCpy $R3 122 # 122 = ASCII code for z Loop2:.. 이전 1 2 3 다음