您的位置:首页 > 其它

物理层与综合布线【笔记】

2014-04-18 23:48 274 查看
一般由系统的dwMajorVersion和dwMinorVersion就可以得到系统版本:
Windows 3.0,
Windows 3.1,
Windows NT, 95(4.0),
Windows 2000 (5.0),
Windows XP (5.1), ....
Windows 7 (6.1), ..... ,
Windows 8.1 (6.3)

struct WindowsNTOSInfo
{
DWORD dwMajorVersion;
DWORD dwMinorVersion;
WORD wServicePackMajor;
//const TCHAR * pcszOSDisplayName;
};

const WindowsNTOSInfo KnownVersionsOfWindows[] =
{
{ 6, 3, 0, },//win8.1,server2012 r2
{ 6, 2, 0, },//win8,server2012

{ 6, 1, 1, },//win7,win2008r2 sp1
{ 6, 1, 0, },//win7,win2008r2

{ 5, 1, 3, },//winxp sp3
{ 5, 1, 2, },//winxp sp2
{ 5, 1, 1, },//winxp sp1
{ 5, 1, 0, },//winxp

{ 6, 0, 2, },//WinVista,server2008 SP2
{ 6, 0, 1, },//WinVista,Server2008 Sp1
{ 6, 0, 0, },//WinVista,Server2008

{ 5, 2, 2, },//Windows Server 2003 Sp2
{ 5, 2, 1, },//Windows Server 2003 Sp1
{ 5, 2, 0, },//Windows Server 2003

{ 5, 1, 4, }, //Windows Server 2000 Sp4
{ 5, 1, 3, }, //Windows Server 2000 Sp3
{ 5, 1, 2, }, //Windows Server 2000 Sp2
{ 5, 1, 2, }, //Windows Server 2000 Sp1
{ 5, 1, 0, }, //Windows Server 2000
};

以下程序可以得出系统是win7还是xp
1)采用VerifyVersionInfo函数
BOOL IsWin7()
{
OSVERSIONINFOEX osvi;
DWORDLONG dwlConditionMask = 0;

// Initialize the OSVERSIONINFOEX structure.

ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 6;
osvi.dwMinorVersion = 1;
//osvi.wServicePackMajor = 1;

// Initialize the condition mask.

VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION,
VER_EQUAL);
VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION,
VER_EQUAL);
//VER_SET_CONDITION(dwlConditionMask, VER_SERVICEPACKMAJOR,	VER_EQUAL);

// Perform the test.

return VerifyVersionInfo(
&osvi,
VER_MAJORVERSION | VER_MINORVERSION,
dwlConditionMask);
}

BOOL IsXP()
{
OSVERSIONINFOEX osvi;
DWORDLONG dwlConditionMask = 0;

// Initialize the OSVERSIONINFOEX structure.

ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 5;
osvi.dwMinorVersion = 1;
//osvi.wServicePackMajor = 1;

// Initialize the condition mask.

VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION,
VER_EQUAL);
VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION,
VER_EQUAL);
//VER_SET_CONDITION(dwlConditionMask, VER_SERVICEPACKMAJOR,	VER_EQUAL);

// Perform the test.

return VerifyVersionInfo(
&osvi,
VER_MAJORVERSION | VER_MINORVERSION,
dwlConditionMask);
}

int _tmain(int argc, TCHAR* argv[])
{
if (IsWin7())
cout << "win 7" << endl;
else if (IsXP())
cout << "xp" << endl;
else
cout << "unrecognized system" << endl;

system("pause");
return 0;
}


2).
#include <iostream>
#include <Windows.h>	 // VersionHelpers.h 依赖于 windows.h
#include <VersionHelpers.h> // Windows SDK 8.1 才有喔
using namespace std;
int main(void)
{
if (IsWindows8OrGreater())
cout << "Win 8" << endl;
else if (IsWindows7OrGreater())
cout << "Win 7" << endl;
else if (IsWindowsXPOrGreater())
cout << "xp" << endl;
else
cout << "unrecognized system" << endl;

system("pause");
}


本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1633745
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: