• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C#如何獲得 WINDOWS 版本

    發表于:2007-05-25來源:作者:點擊數: 標簽:windows版本usingSystem獲得
    using System; using System.Runtime.InteropServices; namespace GetWindowsVersion { [ StructLayout( LayoutKind.Sequential )] public class OSVersionInfo { public int OSVersionInfoSize; public int MajorVersion; public int MinorVersion; public
    using System;
    using System.Runtime.InteropServices;


    namespace GetWindowsVersion
    {
    [ StructLayout( LayoutKind.Sequential )]
    public class OSVersionInfo
    {
    public int OSVersionInfoSize;
    public int MajorVersion;
    public int MinorVersion;
    public int BuildNumber;
    public int PlatformId;


    [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )]
    public String versionString;
    }


    [ StructLayout( LayoutKind.Sequential )]
    public struct OSVersionInfo2
    {
    public int OSVersionInfoSize;
    public int MajorVersion;
    public int MinorVersion;
    public int BuildNumber;
    public int PlatformId;


    [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )]
    public String versionString;
    }


    public class LibWrap
    {
    [ DllImport( "kernel32" )]
    public static extern bool GetVersionEx( [In, Out] OSVersionInfo osvi );


    [ DllImport( "kernel32", EntryPoint="GetVersionEx" )]
    public static extern bool GetVersionEx2( ref OSVersionInfo2 osvi );
    }



    public class App
    {
    public static void Main()
    {
    Console.WriteLine( "\nPassing OSVersionInfo as class" );


    OSVersionInfo osvi = new OSVersionInfo();
    osvi.OSVersionInfoSize = Marshal.SizeOf( osvi );


    LibWrap.GetVersionEx( osvi );

    Console.WriteLine( "Class size: {0} \nOperation System : {1}\nPack: {2}", osvi.OSVersionInfoSize, OpSysName(osvi.MajorVersion, osvi.MinorVersion,osvi.PlatformId),osvi.versionString);
    Console.WriteLine("{0}", osvi.PlatformId);

    Console.WriteLine( "\nPassing OSVersionInfo as struct" );


    OSVersionInfo2 osvi2 = new OSVersionInfo2();
    osvi2.OSVersionInfoSize = Marshal.SizeOf( osvi2 );


    LibWrap.GetVersionEx2( ref osvi2 );
    Console.WriteLine( "Static size: {0} \nOperation System : {1}\nPack: {2}", osvi2.OSVersionInfoSize, OpSysName(osvi2.MajorVersion, osvi2.MinorVersion,osvi2.PlatformId),osvi2.versionString);

    }
    public static String OpSysName(int MajorVersion,int MinorVersion ,int PlatformId)
    {
    String str_opn =String.Format("{0}.{1}",MajorVersion,MinorVersion);


    switch(str_opn)
    {
    case "4.0":
    return win95_nt40(PlatformId);
    case "4.10":
    return "Windows 98";
    case "4.90":
    return "Windows Me";
    case "3.51":
    return "Windows NT 3.51";
    case "5.0":
    return "Windwos 2000";
    case "5.1":
    return "Windwos XP";
    case "5.2":
    return "Windows Server 2003 family";
    default:
    return "This windows version is not distinguish!";
    }
    }
    public static String win95_nt40(int PlatformId)
    {
    switch(PlatformId)
    {
    case 1:
    return "Windows 95";
    case 2:
    return "Windows NT 4.0";
    default:
    return "This windows version is not distinguish!";
    }
    }
    }
    }


    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>