[IE编程] 如何获得IE版本号

程序中使用IE的WebBrowser 控件(MSHTML)或者开发BHO插件的时候,通常需要获得IE的版本号以便做不同处理。这里介绍2中获得IE版本号的方法:
1) 通过注册表
IE的版本号信息放在注册表的:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version 
注:64位机器的32位IE在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Version 
2) 通过读取mshtml.dll 的版本号
mshtml是IE的核心DLL之一。 mshtml.dll文件的版本号码和IE的版本号码应该是一致的。以下代码演示如何获得mshtml.dll的版本号。
view plaincopy to clipboardprint?
const TCHAR szFilename[] = _T("mshtml.dll");  
DWORD dwMajorVersion =0, dwMinorVersion = 0;  
DWORD dwBuildNumber =0, dwRevisionNumber = 0;  
DWORD dwHandle = 0;  
DWORD dwVerInfoSize = GetFileVersionInfoSize(szFilename, &dwHandle);  
if (dwVerInfoSize)  
{  
    LPVOID lpBuffer = LocalAlloc(LPTR, dwVerInfoSize);  
    if (lpBuffer)  
    {  
        if (GetFileVersionInfo(szFilename, dwHandle, dwVerInfoSize, lpBuffer))  
        {  
            VS_FIXEDFILEINFO * lpFixedFileInfo = NULL;  
            UINT nFixedFileInfoSize = 0;  
            if (VerQueryValue(lpBuffer, TEXT("\\"), (LPVOID*)&lpFixedFileInfo, &nFixedFileInfoSize) &&(nFixedFileInfoSize))  
            {  
                dwMajorVersion = HIWORD(lpFixedFileInfo->dwFileVersionMS);    
                dwMinorVersion = LOWORD(lpFixedFileInfo->dwFileVersionMS);    
                dwBuildNumber = HIWORD(lpFixedFileInfo->dwFileVersionLS);    
                dwRevisionNumber = LOWORD(lpFixedFileInfo->dwFileVersionLS);  
            }  
        }  
        LocalFree(lpBuffer);  
    }  
}  
printf("mshtml.dll VersionInfo: \n\tMajorVersion=%d\n\tMinorVersion=%d\n\tBuildNumber=%d\n\tRevisionNumber=%d\n",  
    dwMajorVersion, dwMinorVersion, dwBuildNumber, dwRevisionNumber); 
    const TCHAR szFilename[] = _T("mshtml.dll");
    DWORD dwMajorVersion =0, dwMinorVersion = 0;
    DWORD dwBuildNumber =0, dwRevisionNumber = 0;
    DWORD dwHandle = 0;
    DWORD dwVerInfoSize = GetFileVersionInfoSize(szFilename, &dwHandle);
    if (dwVerInfoSize)
    {
        LPVOID lpBuffer = LocalAlloc(LPTR, dwVerInfoSize);
        if (lpBuffer)
        {
            if (GetFileVersionInfo(szFilename, dwHandle, dwVerInfoSize, lpBuffer))
            {
                VS_FIXEDFILEINFO * lpFixedFileInfo = NULL;
                UINT nFixedFileInfoSize = 0;
                if (VerQueryValue(lpBuffer, TEXT("\\"), (LPVOID*)&lpFixedFileInfo, &nFixedFileInfoSize) &&(nFixedFileInfoSize))
                {
                    dwMajorVersion = HIWORD(lpFixedFileInfo->dwFileVersionMS); 
                    dwMinorVersion = LOWORD(lpFixedFileInfo->dwFileVersionMS); 
                    dwBuildNumber = HIWORD(lpFixedFileInfo->dwFileVersionLS); 
                    dwRevisionNumber = LOWORD(lpFixedFileInfo->dwFileVersionLS);
                }
            }
            LocalFree(lpBuffer);
        }
    }
    printf("mshtml.dll VersionInfo: \n\tMajorVersion=%d\n\tMinorVersion=%d\n\tBuildNumber=%d\n\tRevisionNumber=%d\n",
        dwMajorVersion, dwMinorVersion, dwBuildNumber, dwRevisionNumber);
通过以上2种方法获得 MajorVersion, MinorVersion, BuildNumber, RevisionNumber 之后,你可以查询我之前的blog文章 《IE 版本号大全》里面的那个表来判断是那个IE发行版本。
相关Blog文章:
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值