1
我想知道Win Api来检测Windows操作系统是服务器(2003/2008)还是工作站(XP/Vista/Win7)?有没有办法检测Windows操作系统是服务器(2003/2008)还是工作站(XP/Vista/Win7)?
我想知道Win Api来检测Windows操作系统是服务器(2003/2008)还是工作站(XP/Vista/Win7)?有没有办法检测Windows操作系统是服务器(2003/2008)还是工作站(XP/Vista/Win7)?
它是这样的:
OSVERSIONINFOEX osvi;
BOOL bIsWindowsXPorLater;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx((LPOSVERSIONINFO)&osvi);
if(osvi.wProductType == VER_NT_WORKSTATION)
{
// Workstation
printf("VER_NT_WORKSTATION.\n");
}
else
{
// Server
if(osvi.wProductType == VER_NT_DOMAIN_CONTROLLER)
{
printf("DOMAIN_CONTROLLER.\n");
}
if(osvi.wProductType == VER_NT_SERVER)
{
printf("SERVER.\n");
}
}
还需要kernel.lib
致电GetVersionEx
得到OSVERSIONINFOEX
信息和测试wProductType
。
,我们应该用OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION 和OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION分化无论是工作站或服务器? – Mak 2012-07-20 07:01:55
这是实现它的一种方法,也可能是最直接的方法。请注意'GetVersionEx'文档中有关以兼容模式运行的程序行为的注释。 – 2012-07-20 18:17:52