WinBatch® Technical Support Forum

All Things WinBatch => WinBatch => Topic started by: RAK on December 16, 2013, 01:22:42 AM

Title: iGetIEVer
Post by: RAK on December 16, 2013, 01:22:42 AM
I am testing iGetIEVer() on a 64bit Win7 machine and it's returning version 9  when 11 is installed. Should it work? Is it detecting a 32 version? Does anyone know if a version 10 or 11 IE update effects both 32 and 64 bit versions? Is there such a thing as a 32 bit IE version 10 or 11?

Thanks!
Title: Re: iGetIEVer
Post by: stanl on December 16, 2013, 02:49:46 AM
Quote from: RAK on December 16, 2013, 01:22:42 AM
Is there such a thing as a 32 bit IE version 10 or 11?

Thanks!

I have IE11 on a 32-bit Win7 laptop. I expect Deana will clear up the other matters after she reads this.
Title: Re: iGetIEVer
Post by: Deana on December 16, 2013, 08:17:35 AM
The iGetIEVer function in the WinInet extender merely reads the following registry key to obtain the version of IE.
HKLM\SOFTWARE\Microsoft\Internet Explorer[Version]

This has been the appropriate method to read IE version 4 through 9. However it appears Microsoft may have changed things up. There appears to be a new data item under that registry called svcVersion. This new item appears to contain the appropriate version information for IE versions 10 and newer.

Reference:
http://social.msdn.microsoft.com/Forums/ie/en-US/404753c1-e1a3-4f18-910d-eacec2186f67/how-to-reliably-determine-installed-ie-version-going-forward?forum=ieextensiondevelopment


http://support.microsoft.com/kb/969393
QuoteUse the registry. You can determine the version of Internet Explorer by viewing the following registry key:

HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
If a "version" value appears in this key, Internet Explorer 4.0 or a later version is installed. The version string value contains the version number of Internet Explorer 4.0 (or a later version) that is installed on your computer. (For example, the version string value for Internet Explorer 5 is "5.0.2014.0216"). Be aware that only one zero is stored in the registry for the minor version number if the minor version number is 00. If the minor version number is not 00, the full version value is stored. (For example, 5.50.4807.2300 is stored in the registry as 5.50.4807.2300.)

Note  The version string value for Internet Explorer 10 is 9.10.9200.16384, and the svcVersion string value is 10.0.9200.16384.


You could maybe create workaround that first checks if the svcVersion item exists, if not use the value in the Version item:

Code (winbatch) Select
If RegExistValue( @REGMACHINE, 'Software\Microsoft\Internet Explorer[svcVersion]' )
   ver_IE = RegQueryValue( @REGMACHINE, 'Software\Microsoft\Internet Explorer[svcVersion]' )
ElseIf RegExistValue( @REGMACHINE, 'Software\Microsoft\Internet Explorer[Version]' )
   ver_IE = ( @REGMACHINE, 'Software\Microsoft\Internet Explorer[Version]' )
Else
   ver_IE = 0
Endif
Message("Internet Explorer version",ver_IE)
Exit



I will consult with the developers about getting the iGetIEVer function updated.
Title: Re: iGetIEVer
Post by: RAK on December 16, 2013, 10:35:28 AM
thank you all..
and Deana for the solution

Roy
Title: Re: iGetIEVer
Post by: Deana on December 18, 2013, 11:13:52 AM
We have just updated the WinInet Extender function iGetIEVer to handle IE 10 and newer: http://forum.winbatch.com/index.php?topic=579