欢迎光临
我们一直在努力

如何获得 WINDOWS 版本[C# 版]-.NET教程,C#语言

建站超值云服务器,限时71元/月

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

}

}

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何获得 WINDOWS 版本[C# 版]-.NET教程,C#语言
分享到: 更多 (0)

相关推荐

  • 暂无文章