C#: Determinar si el Sistema Operativo es servidor

marzo 04, 2015 , , 0 Comentarios

Introducción

Muchas veces es necesario conocer qué versión de Windows estamos corriendo en nuestros clientes. En esta entrada mostraré cómo saber si el sistema operativo es cliente o es servidor. Con esto lograremos ejecutar determinadas acciones dependiendo de esta funcionalidad.

Función

Básicamente utilizamos la función IsOS para determinar su valor y obtener el resultado que buscamos. Mas información sobre esta función la puedes encontrar aquí.

public class SO
{
    public static bool EsWindowsServer()
    {
        //Esta constante indica que hablamos de Windows Server
        const int OS_ANYSERVER = 29; 
        //Llamamos a la función correspondiente y pasamos como parámetro el valor OS_ANYSERVER (para cualquier SO de servidor).
        return SO.IsOS (SO.OS_ANYSERVER); 
    }   

    //Llamada a código no administrado. Ver funcionalidad de DllImport en la conclusión.
    [DllImport("shlwapi.dll", SetLastError=true, EntryPoint="#437")]
    private static extern bool IsOS(int os); //
}

Luego llamas a la función SO.EsWindowsServer() y ya tienes esta funcionalidad disponible para tu aplicación.

Conclusión

Llamando a esta simple función puedes determinar detalles importantes de sistema operativo, si te interesan los demás valores puedes investigarlos aquí. También puedes obtener mayor información sobre llamadas a código no administrado aquí.