2012-07-20 38 views

回答

1

它是这样的:

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

2

致电GetVersionEx得到OSVERSIONINFOEX信息和测试wProductType

+0

,我们应该用OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION 和OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION分化无​​论是工作站或服务器? – Mak 2012-07-20 07:01:55

+0

这是实现它的一种方法,也可能是最直接的方法。请注意'GetVersionEx'文档中有关以兼容模式运行的程序行为的注释。 – 2012-07-20 18:17:52

相关问题