有没有办法检测Windows操作系统是服务器(2003/2008)还是工作站(XP / Vista / Win7)?

时间:2012-07-20 06:50:23

标签: windows visual-c++ visual-studio-2005

我想知道Win Api检测Windows操作系统是服务器(2003/2008)还是工作站(XP / Vista / Win7)?

2 个答案:

答案 0 :(得分:2)

致电GetVersionEx获取OSVERSIONINFOEX信息并测试wProductType

答案 1 :(得分: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