2010-03-03 63 views

回答

4

不你鏈接在同一頁面給你答案?

Windows Server 2008 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION 
Windows Vista  OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION 

只需選中wProductType成員對VER_NT_WORKSTATION

編輯

看起來不像有辦法讓這個沒有的P/Invoke。 System.Environment.OSVersion沒有公開這個級別的細節,儘管在mscorlibMicrosoft.Win32名稱空間中有internal static class Win32Native,但據反彙編我可以看出,沒有什麼東西可以使用,更不用說公開了,wProductType

我找到了(但沒有試過)this page on pinvoke.net

+0

似乎需要一個pinvoke。有沒有解決這個問題的解決方案? – satya 2010-03-03 10:40:30

+0

謝謝AakashM。即使我沒有找到沒有P/Invoke的人。無論如何,感謝您的幫助 – satya 2010-03-03 17:18:52

+0

它可以完成而無需通過WMI。請參閱下面的答案。 – 2011-08-26 09:14:44

1

對於服務器,

OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION 

工作站

OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION 
1

您可以使用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

相關問題