如何以编程方式知道我的操作系统是Longhorn服务器还是Vista(客户端)。区分Windows版本的最简单方法是什么?
看来主要版本和次要版本相同两种:
http://msdn.microsoft.com/en-us/library/ms724833.aspx
那么,有没有更好的选择吗?
如何以编程方式知道我的操作系统是Longhorn服务器还是Vista(客户端)。区分Windows版本的最简单方法是什么?
看来主要版本和次要版本相同两种:
http://msdn.microsoft.com/en-us/library/ms724833.aspx
那么,有没有更好的选择吗?
不你链接在同一页面给你答案?
Windows Server 2008 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
只需选中wProductType
成员对VER_NT_WORKSTATION
编辑
看起来不像有办法让这个没有的P/Invoke。 System.Environment.OSVersion
没有公开这个级别的细节,尽管在mscorlib
的Microsoft.Win32
名称空间中有internal static class Win32Native
,但据反汇编我可以看出,没有什么东西可以使用,更不用说公开了,wProductType
。
我找到了(但没有试过)this page on pinvoke.net。
对于服务器,
OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
工作站
OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
您可以使用WMI来查找Windows版本以及各种其他系统信息。
这里是如何获取版本字符串:
var osDetails = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get().OfType<System.Management.ManagementObject>().First();
string version = osDetails.GetPropertyValue("Caption") as string;
这将返回一个字符串,上面写着这样的:“微软Windows XP专业版”。
有更多的属性从标题那里除了可以用来检索版本号,版本,结构等:
http://msdn.microsoft.com/en-us/library/aa394239(v=VS.85).aspx
它的文章中,你已经张贴? wProductType区分客户端和服务器。 – 2010-03-03 10:11:24