Get Internet Explorer version

From NSIS Wiki
Jump to navigationJump to search
Author: sunjammer (talk, contrib)


Description

This function gets the major version of Microsoft Internet Explorer.

The Function

; GetIEVersion
;
; Based on Yazno's function, http://yazno.tripod.com/
; Updated 2007-06-02 Ch. Bergmann (Yazno)
; Returns on top of stack
; 1-11 (Installed IE Version)
; or
; '' (IE is not installed)
;
; Usage:
;   Call GetIEVersion
;   Pop $R0
;   ; at this point $R0 is "5" or whatnot
 
Function GetIEVersion
  Push $R0
  ReadRegStr $R0 HKLM "Software\Microsoft\Internet Explorer" "svcVersion" ; IE v10+
  StrCpy $R0 $R0 2
  IntCmp $R0 9 "" "" lbl_done
  ClearErrors
  ReadRegStr $R0 HKLM "Software\Microsoft\Internet Explorer" "Version"
  IfErrors lbl_123 lbl_4567
 
  lbl_4567: ; IE v4..9
    Strcpy $R0 $R0 1
  Goto lbl_done
 
  lbl_123: ; IE v1..3
    ClearErrors
    ReadRegStr $R0 HKLM "Software\Microsoft\Internet Explorer" "IVer"
    IfErrors lbl_error
 
      StrCpy $R0 $R0 3
        StrCmp $R0 '100' lbl_ie1
        StrCmp $R0 '101' lbl_ie2
        StrCmp $R0 '102' lbl_ie2
        StrCpy $R0 '3' ; default to ie3 if not 100, 101, or 102.
        Goto lbl_done
          lbl_ie1:
            StrCpy $R0 '1'
          Goto lbl_done
          lbl_ie2:
            StrCpy $R0 '2'
          Goto lbl_done
       lbl_error:
         StrCpy $R0 ''
   lbl_done:
   Exch $R0
FunctionEnd

References