Get Internet Explorer Full Version: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Added category links.)
m (Adding new author and category links.)
 
Line 1: Line 1:
{|align=right
{{PageAuthor|intersol}}
|<small>Author: [[{{ns:2}}:intersol|intersol]] ([[{{ns:3}}:intersol|talk]], [[{{ns:-1}}:Contributions/intersol|contrib]])</small>
 
|}
<br style="clear:both;">
== Description ==
== Description ==
This function will return the complete version of Internet Explorer. After this you can compare the result with VersionCheck.
This function will return the complete version of Internet Explorer. After this you can compare the result with VersionCheck.
Line 57: Line 55:
</highlight-nsis>
</highlight-nsis>


[[{{ns:14}}:Other Products Version Detection Functions]]
[[Category:Other Products Version Detection Functions]]

Latest revision as of 12:18, 24 June 2005

Author: intersol (talk, contrib)


Description

This function will return the complete version of Internet Explorer. After this you can compare the result with VersionCheck.

The Script

 ; GetIEFullVersion
 ; Version 1.0 (12.02.2003)
 ;
 ; This could replace GetIEVersion that return only major version
 ;
 ; Created by Sbarnea Sorin (INTERSOL) sorin@intersol.ro
 ; http://www.intersoldev.com (English) http://www.intersol.ro/ (Romanian)
 ;
 ; Feel free to improve but keep the comments
 ;
 ; Returns on top of stack
 ; Version is based on Shdocvw.dll version
 ; Details on Microsoft KB: Q164539
 ;
 ; 0.0.0.0 (IE is not installed)
 ;
 ; Usage:
 ;   Call GetIEVersion
 ;   Pop $R0
 ;   ; at this point $R0 is "4.72.3612.1707" for IE 4.01 SP2
 
Function GetIEFullVersion
  Push $R0
  Push $R1
  Push $R2
  Push $R3
  Push $R4
  Push $R5
 
  ClearErrors
  GetDLLVersion "$SYSDIR\shdocvw.dll" $R0 $R1
  IfErrors 0 +3 ; if not installed returns 0.0.0.0
  IntOp $R0 $R0 ^
  IntOp $R1 $R1 ^ 
  IntOp $R2 $R0 / 0x00010000
  IntOp $R3 $R0 & 0x0000FFFF
  IntOp $R4 $R1 / 0x00010000
  IntOp $R5 $R1 & 0x0000FFFF
  StrCpy $R0 "$R2.$R3.$R4.$R5"
  Pop $R5
  Pop $R4
  Pop $R3
  Pop $R2
  Pop $R1
  Exch $R0
FunctionEnd