我有一个作为Word加载项运行的应用程序。 (VSTO)。
它运行在世界各地的许多PC上。 在某些情况下,我需要麻烦地解决问题(显然是远程),并有一个报告机制,告诉我哪个Windows操作系统正在运行 – 我在.NET中使用Environment.OSVersion
。 至less在Windows 10之前。
有一篇关于创build应用程序清单的MSDN( 针对Windows的应用程序)的文章,它将使正确的版本能够被返回。
但我的应用程序是一个DLL,而不是一个EXE,所以不能真正适应这篇文章中提到的XML代码。
有没有办法只是问Windows,“你是什么版本?真的,如果你承认真正的版本,我不会哭。
或者在registry中的某个项目?
WMI是做这种东西的最好方法你可以用它来检索OS信息:
ManagementObjectSearcher objMOS = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem"); OS.Name = ((string)objMOS["Caption"]).Trim(); OS.Version = (string)objMOS["Version"]; OS.MaxProcessCount = (uint)objMOS["MaxNumberOfProcesses"]; OS.MaxProcessRAM = (ulong)objMOS["MaxProcessMemorySize"]; OS.Architecture = (string)objMOS["OSArchitecture"]; OS.SerialNumber = (string)objMOS["SerialNumber"]; OS.Build = ((string)objMOS["BuildNumber"]).ToUint();
这可以获取您的操作系统细节。
您可以尝试GetVersionEx
Win32 API。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx
请注意,Windows 10实际上是版本6.4。 6.0版本是Vista,6.1 – 7,6.2 – 8。