#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!我该如何实现,
请高手们帮帮忙!小弟感激不尽!
#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!我该如何实现,
请高手们帮帮忙!小弟感激不尽!
解决方案 »
- 怎么在一个纯C++类里面操作对话框控件
- 在MDI中,怎样在文档消失(关闭)之前出现保存对话框?
- 关于MSDN一类帮助文档,HTML文本里的超连接是如何实现的?
- [新手]一个简单问题:怎样在图片上写字?
- winsock包装在win32 dll中出现的问题,100分相送
- ?在2000/nt/xp下可以用CreateRemoteThread()来建远程线程,在98又怎么做呢?(guo_da_hai)
- 问一个运算符的简单问题
- 有关菜单的问题,我是在对话框上的菜单
- 抄《ATL 开发指南》第四章的例子,用nmake编译proxy/stub DLL失败,为什么?
- 求一算法,非常感激提供意见者
- 求助终止进程问题!
- 抠图算法的边缘处理问题
Operating system Version number dwMajorVersion dwMinorVersion Other
Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2003 R2 5.2 5 2 GetSystemMetrics(SM_SERVERR2) != 0
Windows Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
Windows XP 5.1 5 1 Not applicable
Windows 2000 5.0 5 0 Not applicable
version.wProductType == VER_NT_WORKSTATION && dwMajor ==6 && dwMinor ==0//vista
dwMajor ==5 && dwMinor ==1//xp
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.0win 98 4.1win 2000win NT) 5.0win xp(NT5.1) 5.1 win 2003 5.2win Vista 6.0win 7 6.1
DWORD dwMajor;
DWORD dwMinor;
::GetVersionEx(&version);
dwMajor=version.dwMajorVersion;
dwMinor=version.dwMinorVersion;
//if (dwMajor == 6 && dwMinor == 1) //这个应该是WIN7了但是弹出来的还是不是
if(dwMajor ==6 && dwMinor ==1)
{
MessageBox("是\n");
}
else
{
MessageBox("不是\n");
}
}
都不知道哪里错了!
Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2003 R2 5.2 5 2 GetSystemMetrics(SM_SERVERR2) != 0
Windows Home Server 5.2 5 2 OSVERSIONINFOEX.wSuiteMask == VER_SUITE_WH_SERVER
Windows Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
Windows XP Professional x64 Edition 5.2 5 2 (OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
Windows XP 5.1 5 1 Not applicable
Windows 2000 5.0 5 0 Not applicable我前天正好刚转的文章可以看下
http://blog.csdn.net/jwybobo2007/archive/2011/03/02/6217240.aspx
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";
}