2012-07-20 72 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

相關問題