반응형
# 호출 예
# ${GetIEVersion} '반환'
# ${GetIEVersion} $0
!macro _GetIEVersion un
Function ${un}_GetIEVersion
Push $R0
Push $R1
ClearErrors
ReadRegStr $R1 HKLM "Software\Microsoft\Internet Explorer" "svcVersion" # IE 10, 11
IfErrors FAIL_GET_svcVersion SUCCESS_GET_svcVersion
SUCCESS_GET_svcVersion:
${IndexOf} $R0 "." $R1
StrCpy $R1 $R1 $R0
Goto lbl_done
FAIL_GET_svcVersion:
ReadRegStr $R1 HKLM "Software\Microsoft\Internet Explorer" "Version" # IE 9 이하
IfErrors lbl_123 lbl_456
lbl_456: # ie 4+
${IndexOf} $R0 "." $R1
StrCpy $R1 $R1 $R0
Goto lbl_done
lbl_123: # older ie version
ClearErrors
ReadRegStr $R1 HKLM "Software\Microsoft\Internet Explorer" "IVer"
IfErrors lbl_error
StrCpy $R1 $R1 3
StrCmp $R1 '100' lbl_ie1
StrCmp $R1 '101' lbl_ie2
StrCmp $R1 '102' lbl_ie2
StrCpy $R1 '3' # default to ie3 if not 100, 101, or 102.
Goto lbl_done
lbl_ie1:
StrCpy $R1 '1'
Goto lbl_done
lbl_ie2:
StrCpy $R1 '2'
Goto lbl_done
lbl_error:
StrCpy $R1 ''
lbl_done:
Push $R1
Exch
Pop $R1
Exch
Pop $R0
FunctionEnd
!macroend
!insertmacro _GetIEVersion ""
!insertmacro _GetIEVersion "un."
!macro GetIEVersion OUTPUT
!ifndef __UNINSTALL__
Call _GetIEVersion
!else
Call un._GetIEVersion
!endif
Pop "${OUTPUT}"
!macroend
!define GetIEVersion "!insertmacro GetIEVersion"
반응형
'NSIS > Reference' 카테고리의 다른 글
[NSIS] 커맨드 라인 옵션 값 받아오기 + 사일런트 모드 설치 (0) | 2024.12.11 |
---|---|
[NSIS] StrLower (0) | 2024.12.09 |
[NSIS] Windows 버전 얻는 함수 (0) | 2024.12.09 |
[NSIS] 원본 문자열의 앞에서부터 원하는 문자의 인덱스 찾기 (0) | 2024.12.09 |
[NSIS] 원본 문자열의 뒤에서부터 원하는 문자의 인덱스 찾기 (0) | 2024.12.09 |