2015-12-11 51 views
1

如何在.NET中檢測Windows 7(或更高版本)中的版本?在.NET中檢測Windows 7版

在IIS中,Windows身份驗證不是用於家庭高級版的選項(在網站的身份驗證下),但它是針對Ultimate的。所以我需要檢查版本,以便我知道何時使用網站的基本身份驗證。下面的代碼允許您檢測操作系統版本。該版本是否可以被該對象檢測到?或者我應該使用不同的命令?

OperatingSystem osversion = System.Environment.OSVersion; 

版本的Windows:

Detect Windows version in .net

我發現這篇文章,但我試圖環繞的C++部分我的頭。

http://www.codeguru.com/cpp/misc/misc/system/article.php/c8973/Determine-Windows-Version-and-Edition.htm

+0

也許這是「產品類型」,而不是「套件面具」..仍然無法找到它 – MacGyver

回答

0

見GetProductInfo()文檔:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724358(v=vs.85).aspx

C#源代碼:

using System.Runtime.InteropServices; 

    [DllImport("Kernel32.dll")] 
    internal static extern bool GetProductInfo(
     int osMajorVersion, 
     int osMinorVersion, 
     int spMajorVersion, 
     int spMinorVersion, 
     out int edition); 

     int edition = -1; 

     if (GetProductInfo(6, 0, 0, 0, out edition)) 
     { 
      Console.WriteLine("Edition: " + edition); 
     } 

C++當量:

//BOOL WINAPI GetProductInfo( 
    //_In_ DWORD dwOSMajorVersion, 
    //_In_ DWORD dwOSMinorVersion, 
    //_In_ DWORD dwSpMajorVersion, 
    //_In_ DWORD dwSpMinorVersion, 
    //_Out_ PDWORD pdwReturnedProductType 
    //); 
+0

也明智地得到osVersionInfo和OSInfo .. https://bytes.com/topic/c-sharp/answers/273614-getversionex-implementation-problem – MacGyver

+0

並在此驗證整數:http://www.codeguru.com/cpp/misc/misc/system/article.php/c8973/Determine-Windows-Version-and-Edition.htm – MacGyver