我更新的遗留应用程序,它有一些功能检测已安装的Internet Explorer的版本,只是为了显示和错误,因为需要任何部件报告没有。 用于IE版本检测的代码基本上是从代码VBnet - DllGetVersion:详细的Internet Explorer版本信息 (作者:凯基督教汉森,VBnet -兰迪桦木)。 不幸的是这个代码未检测到IE版本比IE6大。
所以我想知道什么检测的Internet Explorer安装版本接受VB6的方法是,这些天?
谢谢。
我更新的遗留应用程序,它有一些功能检测已安装的Internet Explorer的版本,只是为了显示和错误,因为需要任何部件报告没有。 用于IE版本检测的代码基本上是从代码VBnet - DllGetVersion:详细的Internet Explorer版本信息 (作者:凯基督教汉森,VBnet -兰迪桦木)。 不幸的是这个代码未检测到IE版本比IE6大。
所以我想知道什么检测的Internet Explorer安装版本接受VB6的方法是,这些天?
谢谢。
下面是我用来获取文件版本信息类:
Option Explicit 'property storage variables Private m_strCompanyName As String Private m_strFileDescription As String Private m_strFileVersion As String Private m_strInternalName As String Private m_strCopyright As String Private m_strOriginalFileName As String Private m_strProductName As String Private m_strProductVersion As String Private m_strPrivateBuild As String Private m_strSpecialBuild As String Private m_strComments As String Private m_strLegalTrademark As String Private Declare Function GetFileVersionInfo Lib "Version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwhandle As Long, ByVal dwlen As Long, lpData As Any) As Long Private Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long Private Declare Function GetSystemDirectory Lib "Kernel32" Alias "GetSystemDirectoryA" (ByVal Path As String, ByVal cbBytes As Long) As Long Private Declare Function lstrcpy Lib "Kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long Private Declare Sub MoveMemory Lib "Kernel32" Alias "RtlMoveMemory" (dest As Any, ByVal Source As Long, ByVal Length As Long) Private Declare Function OpenFile Lib "Kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long Private Declare Function VerQueryValue Lib "Version.dll" Alias "VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lplpBuffer As Any, puLen As Long) As Long Private Const OFS_MAXPATHNAME = 128 Private Const OF_EXIST = &H4000 Private Const INVALID_HANDLE_VALUE = -1 Private Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Long Reserved1 As Long Reserved2 As Long szPathName(OFS_MAXPATHNAME) As Byte End Type Public Function GetVersionInfo(ByRef lpFile As String) As Boolean Dim buffer As String Dim rc As Long Dim FullFileName As String Dim sFName As String Dim lBufferLen As Long Dim lDummy As Long On Error GoTo errGetVersionInfo If FileExists(lpFile) Then buffer = String(255, 0) '*** Get size **** lBufferLen = GetFileVersionInfoSize(lpFile, lDummy) If lBufferLen 0 Then Dim bytebuffer(255) As Byte MoveMemory bytebuffer(0), lVerPointer, lBufferLen Dim Lang_Charset_String As String Dim HexNumber As Long HexNumber = CLng(bytebuffer(2)) + CLng(bytebuffer(3)) * &H100 + _ CLng(bytebuffer(0)) * &H10000 + CLng(bytebuffer(1)) * &H1000000 Lang_Charset_String = Hex(HexNumber) 'now we change the order of the language id and code page 'and convert it into a string representation. 'For example, it may look like 040904E4 'Or to pull it all apart: '04------ = SUBLANG_ENGLISH_USA '--09---- = LANG_ENGLISH ' ----04E4 = 1252 = Codepage for Windows:Multilingual Do While Len(Lang_Charset_String) 0 End If 'lBufferLen INVALID_HANDLE_VALUE Then FileExists = True Else FileExists = False End If End Function Friend Property Get CompanyName() As String CompanyName = m_strCompanyName End Property Private Property Let CompanyName(ByVal vNewValue As String) m_strCompanyName = Trim$(vNewValue) End Property Friend Property Get FileDescription() As String FileDescription = m_strFileDescription End Property Private Property Let FileDescription(ByVal vNewValue As String) m_strFileDescription = Trim$(vNewValue) End Property Friend Property Get FileVersion() As String FileVersion = m_strFileVersion End Property Private Property Let FileVersion(ByVal vNewValue As String) m_strFileVersion = Trim$(vNewValue) End Property Friend Property Get InternalName() As String InternalName = m_strInternalName End Property Private Property Let InternalName(ByVal vNewValue As String) m_strInternalName = Trim$(vNewValue) End Property Friend Property Get Copyright() As String Copyright = m_strCopyright End Property Private Property Let Copyright(ByVal vNewValue As String) m_strCopyright = Trim$(vNewValue) End Property Friend Property Get OriginalFileName() As String OriginalFileName = m_strOriginalFileName End Property Private Property Let OriginalFileName(ByVal vNewValue As String) m_strOriginalFileName = Trim$(vNewValue) End Property Friend Property Get ProductName() As String ProductName = m_strProductName End Property Private Property Let ProductName(ByVal vNewValue As String) m_strProductName = Trim$(vNewValue) End Property Friend Property Get ProductVersion() As String ProductVersion = m_strProductVersion End Property Private Property Let ProductVersion(ByVal vNewValue As String) m_strProductVersion = Trim$(vNewValue) End Property Friend Property Get PrivateBuild() As String ProductVersion = m_strPrivateBuild End Property Private Property Let PrivateBuild(ByVal vNewValue As String) m_strPrivateBuild = Trim$(vNewValue) End Property Friend Property Get SpecialBuild() As String ProductVersion = m_strSpecialBuild End Property Private Property Let SpecialBuild(ByVal vNewValue As String) m_strSpecialBuild = Trim$(vNewValue) End Property Friend Property Get Comments() As String Comments = m_strComments End Property Private Property Let Comments(ByVal vNewValue As String) m_strComments = vNewValue End Property Friend Property Get LegalTrademark() As String LegalTrademark = m_strLegalTrademark End Property Private Property Let LegalTrademark(ByVal vNewValue As String) m_strLegalTrademark = vNewValue End Property
这是我对IE 8的结果。
公司名称:微软公司
文件描述:Internet Explorer
产品版本:8.00.6001.18702(longhorn_ie8_rtm(wmbla).090308-0339)
内部名称:IEXPLORE
法律版权:©微软公司。 版权所有。
原始文件名:IEXPLORE.EXE
产品名称:Windows®因特网浏览器
评论:Windows®因特网浏览器
商标:Windows®因特网浏览器
文件版本:8.00.6001.18702(longhorn_ie8_rtm(wmbla).090308-0339)
私有构建:
特别打造的:
您可以访问注册表来做到这一点。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version.
对于IE 10以上,你应该检查
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\svcVersion.
看看KB 969393
我搜索周围,我真的无法找到任何东西。 晦涩出于某种原因的一种。 我发现这个链接如果有人发布了解决方案,但我coulnd't得到它的工作充分! :)我不是一个真正的动家伙所以也许你可以。 这里是如果你的兴趣的链接:
http://www.visualbasicscript.com/m_64130/tm.htm
编辑:
我居然错过了该页面底部一些代码,这些代码似乎在获得IE浏览器的版本很好地工作。 我有点简化他的代码一点点:
Dim oFS = CreateObject("Scripting.FileSystemObject")
Dim version = oFS.GetFileVersion("c:\windows\system32\ieframe.dll")
MsgBox("Your IE version is: " & version)
希望这可以帮助!