为这点事找了在网上查了半天好多感觉不好用,最后选定这个以备自己和需要的朋友再乱翻了,代码是抄的
就在MFC里调用了下很好用。用的RtlGetNtVersionNumbers
//------------------------------------------------------------------------
// 函数 : GetNtVersionNumbers
// 功能 : 调用RtlGetNtVersionNumbers获取系统版本信息
// 返回值 : BOOL
// 参数 : DWORD& dwMajorVer 主版本
// 参数 : DWORD& dwMinorVer 次版本
// 参数 : DWORD& dwBuildNumber build号
// 附注 :
//-------------------------------------------------------------------------
BOOL GetNtVersionNumbers( DWORD&dwMajorVer , DWORD& dwMinorVer , DWORD& dwBuildNumber )
{
BOOL bRet = FALSE;
HMODULE hModNtdll = NULL;
if ( hModNtdll = ::LoadLibraryW( _T("ntdll.dll") ) )
{
typedef void ( WINAPI *pfRTLGETNTVERSIONNUMBERS )( DWORD* , DWORD* , DWORD* );
pfRTLGETNTVERSIONNUMBERS pfRtlGetNtVersionNumbers;
pfRtlGetNtVersionNumbers = ( pfRTLGETNTVERSIONNUMBERS )::GetProcAddress(
hModNtdll , "RtlGetNtVersionNumbers" );
if ( pfRtlGetNtVersionNumbers )
{
pfRtlGetNtVersionNumbers( &dwMajorVer , &dwMinorVer , &dwBuildNumber );
dwBuildNumber &= 0x0ffff;
bRet = TRUE;
}
::FreeLibrary( hModNtdll );
hModNtdll = NULL;
}
return bRet;
}
void CMFCApplication3Dlg::OnBnClickedButton1( )//Button按钮直接调用
{
// TODO: 在此添加控件通知处理程序代码
DWORD dwMajorVer;
DWORD dwMinorVer;
DWORD dwBuildNumber;
GetNtVersionNumbers(dwMajorVer ,dwMinorVer ,dwBuildNumber );
//CString m;
//m.Format( L"%d.%d.%d" , dwMajorVer , dwMinorVer , dwBuildNumber );
//AfxMessageBox( m );
//要判断什么自己添加吧
if ( dwMajorVer >= 6 )
{
AfxMessageBox( _T("您的系统是温妻") );
}
else
{
AfxMessageBox( _T("目前不支持您的系统请换温妻") );
}
}