Internet Explorer, al contrario que otros navegadores, no almacena la versión actual de su navegador en el registro. La única forma de obtenerlo es accediendo a la función DllGetVersion presente en la librería "shdocvw.dll" que es la encargada de realizar el renderizado de las páginas.
Para ello tan solo debemos realizar los siguientes sencillos pasos:
1º Declarar la función y la librería en la que se encuentra dentro de la clase que va a utilizarlo.
[System.Runtime.InteropServices.DllImport ("shdocvw.dll")]
private static extern int DllGetVersion (ref DLLVERSIONINFO pdvi);
2º Definir la estructura que almacenará la información de la versión
struct DLLVERSIONINFO
{
public uint cbSize,
dwMajorVersion,
dwMinorVersion,
dwBuildNumber,
dwPlatformID;
}
3º Llamar a la función y obtener la información.
DLLVERSIONINFO dvi = new DLLVERSIONINFO ();
dvi.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf (dvi);
int resultado = DllGetVersion (ref dvi);
if (resultado == 0)
return string.Format ("{0}.{1}.{2}", dvi.dwMajorVersion, dvi.dwMinorVersion, dvi.dwBuildNumber);
else
return "?";