Windows C#

using System;
using System.Runtime.InteropServices;
public class Starter {
    public static void Main() {
        API.OSVERSIONINFO info = new API.OSVERSIONINFO();
        info.dwOSVersionInfoSize = Marshal.SizeOf(info);
        bool resp = API.GetVersionEx(ref info);
        if (resp == false) {
            Console.WriteLine("GetVersion failed");
        }
        Console.WriteLine("{0}.{1}.{2}",
            info.dwMajorVersion,
            info.dwMinorVersion,
            info.dwBuildNumber);
    }
}
public class API {
    [DllImport("kernel32.dll")]
    public static extern
        bool GetVersionEx(ref OSVERSIONINFO lpVersionInfo);
    [StructLayout(LayoutKind.Sequential)]
    public struct OSVERSIONINFO {
        public System.Int32 dwOSVersionInfoSize;
        public System.Int32 dwMajorVersion;
        public System.Int32 dwMinorVersion;
        public System.Int32 dwBuildNumber;
        public System.Int32 dwPlatformId;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
        public String szCSDVersion;
    }
}