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