e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> C教程 >> C#如何获得 WINDOWS 版本 >> 教程正文
 
教程搜索
 
 
相关教程
  • 深入剖析C#继承机制
  • C#如何获得 WINDOWS 版本
  • C# 编码规范和编程好习惯
  • 获得汉字字符串拼音首字母 C#版
  • 利用C#实现标准的 Dispose模式
  • 在C#中应用哈希表(Hashtable)
  • 利用Delphi 2005 编写C#应用程序
  • 对C#泛型中的new()约束的一点思考
  • 身份证15To18 的算法(C#)
  • .Net下WebMethod属性
  • C#实现的18位身份证格式验证算法
  • C#中用API实现MP3等音频文件的播放类
  • 用C#把文件转换为XML
  • 如何得到硬盘序列号
  • Raw Socket编程实现网络封包监视
  • C#2.0 对AD的简单操作
 
 

图文教程


  • 将其他Email邮件转移到Gmail邮箱中

  • Vista破解TCP/IP后进不了系统咋办

  • Vista下用DriveSpacio查看磁盘空间

  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”
 
 
赞 助 商
 
 
C#如何获得 WINDOWS 版本
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

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!";

}

}

}

}


  • 上一篇教程: C# 编码规范和编程好习惯
  • 下一篇教程: 深入剖析C#继承机制
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.