如何判断当前操作系统的版本

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

徐景周

//------------------------------------------------------------------------------------------------

//判断操作系统涵数及变量,jingzhou xu

typedef enum tagWin32SysType{

Windows32s,

WindowsNT3,

Windows95,

Windows98,

WindowsME,

WindowsNT4,

Windows2000,

WindowsXP

}Win32SysType;

//判断操作系统涵数及变量,jingzhou xu

Win32SysType IsShellSysType()

{

Win32SysType ShellType;

DWORD winVer;

OSVERSIONINFO *osvi;

winVer=GetVersion();

if(winVer<0x80000000){/*NT */

ShellType=WindowsNT3;

osvi= (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));

if (osvi!=NULL){

memset(osvi,0,sizeof(OSVERSIONINFO));

osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);

GetVersionEx(osvi);

if(osvi->dwMajorVersion==4L)ShellType=WindowsNT4;

else if(osvi->dwMajorVersion==5L&&osvi->dwMinorVersion==0L)ShellType=Windows2000;

else if(osvi->dwMajorVersion==5L&&osvi->dwMinorVersion==1L)ShellType=WindowsXP;

free(osvi);

}

}

else if (LOBYTE(LOWORD(winVer))<4)

ShellType=Windows32s;

else{

ShellType=Windows95;

osvi= (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));

if (osvi!=NULL){

memset(osvi,0,sizeof(OSVERSIONINFO));

osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);

GetVersionEx(osvi);

if(osvi->dwMajorVersion==4L&&osvi->dwMinorVersion==10L)ShellType=Windows98;

else if(osvi->dwMajorVersion==4L&&osvi->dwMinorVersion==90L)ShellType=WindowsME;

free(osvi);

}

}

return ShellType;

}

//------------------------------------------------------------------------------------------------

用法:

//Win98、95、32下不用,jingzhou xu

Win32SysType SysType = IsShellSysType();

if(SysType != Windows32s && SysType != Windows95 && SysType !=Windows98)

{

//显示动态GIF图像logo,jingzhou xu

if (m_Picture.Load(MAKEINTRESOURCE(IDR_GIF),_T("GIF")))

{

m_Picture.Draw();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航