Нужно получить версию Windows, используя WinAPI, а конкретно функцию http://msdn.microsoft.com/en-us/library/ms724451(v=VS.85).aspx. Функция принимает структуру http://msdn.microsoft.com/en-us/library/ms724833(v=VS.85).aspxи в нее же пишет результат.
Структуру и вызов WinAPI функции сделал так:
| Код | [StructLayout(LayoutKind.Sequential)] public class OSVersionInfo { public uint dwOSVersionInfoSize; public uint dwMajorVersion; public uint dwMinorVersion; public uint dwBuildNumber; public uint dwPlatformId; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] public String szCSDVersion; } class Kernel { [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern bool GetVersionEx([In, Out] OSVersionInfo info); }
|
Далее пытаюсь вывести билд в консоль, но получаю 0.
| Код | class Program { static void Main(string[] args) { OSVersionInfo version = new OSVersionInfo(); version.dwOSVersionInfoSize = (uint) Marshal.SizeOf(version); Kernel.GetVersionEx(version); Console.WriteLine(version.dwBuildNumber); Console.ReadKey(); } }
|
Готовый проект с этим кодом во вложении. |