读书人

怎么判断系统是否是win7和windows 200

发布时间: 2013-07-01 12:33:04 作者: rapoo

如何判断系统是否是win7和windows 2003和XP
#include "stdafx.h"
#include<afxwin.h>
#include <stdio.h>
int IsVista(void) ;
int main(int argc, char* argv[])
{
int ver = IsVista();
if (ver)
{
printf("此系统是Vista版本\n");
}
else
{
printf("此系统不是Vista版本\n");
}
return 0;
}

int IsVista(void)
{
OSVERSIONINFO version;
DWORD dwMajor;
DWORD dwMinor;
::GetVersionEx(&version);
dwMajor = version.dwMajorVersion;
dwMinor = version.dwMinorVersion;

if (dwMajor == 6 && dwMinor == 0) //vista
return 1;
else
return 0;
}

我现在想判断系统是否是win7和windows 2003和XP!我该如何实现,
请高手们帮帮忙!小弟感激不尽!
[解决办法]
采用GetSystemInfo函数进行处理,请看下面的说明信息:
SYSINFO.nWinMajor:
4 The operating system is Windows NT 4.0.
5 The operating system is Windows Server 2003 R2, Windows Server 2003, Windows XP,or Windows 2000.
6 The operating system is Windows Vista , Windows Server 2008 or Windows 7

SYSINFO.nWinMinor:
0 The operating system is Windows Vista, Windows Server 2008, Windows 2000, or Windows NT 4.0.
1 The operating system is Windows XP.
2 The operating system is Windows Server 2003 R2, Windows Server 2003, or Windows XP Professional x64 Edition.

GetSystemInfo(WINMINOR, nvResult, svResult);
GetSystemInfo(WINMAJOR, nvResult, svResult);



win 95 4.0

win 98 4.1

win 2000win NT) 5.0

win xp(NT5.1) 5.1

win 2003 5.2

win Vista 6.0

win 7 6.1

[解决办法]
//============得到操作系统
CString GetSystem()
{
AntiAV();
TCHAR szwindows[128];
ZeroMemory(szwindows,sizeof(szwindows));

TCHAR szSubKeys[]="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
//------------打开注册表键
HKEY hKeys;


if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,szSubKeys,0L,KEY_ALL_ACCESS,&hKeys) == ERROR_SUCCESS)
{
DWORD dwType;
DWORD dwSize=200;
RegQueryValueEx(hKeys,"ProductName",NULL,&dwType,(BYTE *)szwindows,&dwSize);
RegCloseKey(hKeys);
}
//------------判断当前的操作系统
if(StrStrI(szwindows,"2000")!=NULL)
return "Win2000";
else if(StrStrI(szwindows,"XP")!=NULL)
return "WinXP";
else if(StrStrI(szwindows,"2003")!=NULL)
return "Win2003";
else if(StrStrI(szwindows,"Vista")!=NULL)
return "WinVista";
else if(StrStrI(szwindows,"2008")!=NULL)
return "Win2008";
else if(StrStrI(szwindows,"7")!=NULL)
return "Win7";

return "Faild";
}

读书人网 >VC/MFC

热点推荐