如何判断当前操作系统的版本
敬业的IT人
互联网
佚名
2008-1-4 18:48:40
徐景周
//------------------------------------------------------------------------------------------------
//判断操作系统涵数及变量,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();
}
}
//------------------------------------------------------------------------------------------------
//判断操作系统涵数及变量,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();
}
}
- 最新文章
- VC下实现DirectSound[01-04]
- 在VC应用程序中插入微型动画[01-04]
- Visual C 应用框架揭密[01-04]
- 利用VC 编写Windows95的CPL组件[01-04]
- 如何在VC 程序中获得其他程序的图标[01-04]
- Window9X中读取和存储注册表键值的简易类[01-04]
- 相关文章
- 苹果下一代操作系统技术揭密[01-04]
- 猛虎诞生 苹果新操作系统 Mac OS X 10.4[01-04]
- 苹果将抢先Longhorn推新版本操作系统Tiger[01-04]
- Windows XP操作系统中找回经EFS加密的文件[01-04]
- 一步步图解Windows XP操作系统的快速安装[01-04]
- 如何判断当前操作系统是否为98/2000/XP[01-04]
