您的位置:首页 > Web前端 > HTML

VC 通过mshtml.dll获取ie版本号

2017-07-06 16:31 309 查看
//获取ie版本号
#include "Winver.h";
#pragma comment(lib,"Version.lib")
DWORD GetIeVersion()
{
const TCHAR szFilename[] = _T("mshtml.dll");
DWORD dwMajorVersion = 0, dwMinorVersion = 0;
DWORD dwBuildNumber = 0, dwRevisionNumber = 0;
DWORD dwHandle = 0;TCHAR szBuf[80];
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);
}
}
else return 0;
wchar_t buf[1024] = { 0 };
wsprintfW(buf, L"IE 版本为 %d.%d.%d.%d", dwMajorVersion, dwMinorVersion, dwBuildNumber, dwRevisionNumber);
OutputDebugStringW(buf);
return dwMajorVersion;//返回主版本号
}

以上内容来自:http://blog.csdn.net/qiangzi4646/article/details/53841325

我个人又简单整理了一下,

//获取ie版本号
#include "Winver.h";
#pragma comment(lib,"Version.lib")
CString GetIeVersion()
{
const TCHAR szFilename[] = _T("mshtml.dll");
DWORD dwMajorVersion = 0, dwMinorVersion = 0;
DWORD dwBuildNumber = 0, dwRevisionNumber = 0;
DWORD dwHandle = 0;TCHAR szBuf[80];
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);
}
}
else
{
return _T("");
}

TCHAR buf[512] = { 0 };
wsprintf(buf, _T("%d.%d.%d.%d"), dwMajorVersion, dwMinorVersion, dwBuildNumber, dwRevisionNumber);
OutputDebugString(buf);
CString strIEVer = buf;
return strIEVer;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: