参考如下程序,主要API是GetVersionEx,但是你需要自己知道Win7和XP的version的值来判断到底是什么系统
#include
#include
using namespace std;
int main()
{
OSVERSIONINFOEX osver;
osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
//获取版本信息
if (! GetVersionEx((LPOSVERSIONINFO)&osver))
{
cout<<"Error:"<}
//打印版本信息
cout<<"System info:"<cout<<"Version:"< <<" Build "< <<" Service Pack "< < if (osver.dwMajorVersion >= 5 && osver.dwMajorVersion < 6)
{
cout<<"This is XP"<}
else if (osver.dwMajorVersion > 6.0)
{
cout<<"This is Win7 or above"<}
else
{
cout<<"This is Win2000 or previous version"<}
system("pause");
}
新建一个MFC对话框程序,画一个按钮,响应函数如下:
void CShowOSVersionDlg::OnButton1()
{
DWORD iMajor=0,iMinor=0;
OSVERSIONINFOEX osinfo;
osinfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);
GetVersionEx((OSVERSIONINFO *)&osinfo);
iMajor=osinfo.dwMajorVersion;
iMinor=osinfo.dwMinorVersion;
CString strTemp("Your OS is ");
if(6==iMajor && 1==iMinor)strTemp += "WIN7";
if(5==iMajor && 1==iMinor)strTemp += "WINXP";
GetDC()->TextOut(0,0,strTemp);
}
这个只是个例子,实际中6.1版本不止可能是WIN7还可能是Windows Server 2008 R2。抛砖引玉,你自己看一下各个版本的版本号,和OSVERSIONINFOEX结构。
看如下网址的代码
http://blog.sina.com.cn/s/blog_6d7937b10100tvjv.html