NSIS/Reference
[NSIS] Internet Explorer 버전 얻는 함수
MoongStory
2024. 12. 9. 18:05
반응형
# 호출 예
# ${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"
반응형