如何判断系统是否是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";
}