最近写写一个工具,需要识别当前系统。
首先,找到GetVersionEx函数,能识别win7和win8。但win10需要修改manifested,才能识别,具体参考如下链接:
http://blog.csdn.net/k1988/article/details/47614529
实际放到不同系统测试,发现有概率识别系统错误,后来没纠结找原因。直接用另外一种方法。
第二种方法,使用Win32_OperatingSystem ,代码如下
ManagementObjectSearcher sercher = new ManagementObjectSearcher("select * from Win32_OperatingSystem");foreach (ManagementObject mo in sercher.Get()){// MessageBox.Show(mo["Caption"].ToString() + "\n" + mo["OSArchitecture"].ToString() + "\n" + mo["Version"].ToString());verson1 = mo["Version"].ToString();}
再查表,即可.这个类还有其他参数,挺有用的。
Operating system | Version number | dwMajorVersion | dwMinorVersion |
Windows 10 | 10.0 | 10 | 0 |
Windows 8.1 | 6.3 | 6 | 3 |
Windows 8 | 6.2 | 6 | 2 |
Windows 7 | 6.1 | 6 | 1 |
Windows Server 2008 | 6.0 | 6 | 0 |
Windows Server 2003 | 5.2 | 5 | 2 |
Windows 2000 | 5.0 | 5 | 0 |
链接:
http://www.cnblogs.com/huangenai/p/5976278.html
http://blog.csdn.net/k1988/article/details/47614529
https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx