Get Internet Explorer version: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(Support IE 10 and 11)
(Added References links)
 
Line 55: Line 55:
   Exch $R0
   Exch $R0
FunctionEnd</highlight-nsis>
FunctionEnd</highlight-nsis>
== References ==
* [https://web.archive.org/web/20041109040735/http://support.microsoft.com/kb/164539 KB 164539: How to determine which version of Internet Explorer is installed]
* [https://www.codeproject.com/articles/1583/determine-the-version-of-internet-explorer-install Codeproject: Determine the version of Internet Explorer installed]


[[Category:Other Products Version Detection Functions]]
[[Category:Other Products Version Detection Functions]]

Latest revision as of 13:38, 1 May 2020

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