如果您使用類似Code Pack的包裝庫(http://code.msdn.microsoft.com/WindowsAPICodePack),它會爲您進行版本檢查。您繼續並調用庫方法,如果您在運行時嘗試某些不在OS上的操作,它將拋出PlatformNotSupportedException。
如果您是P /調用某些Windows DLL,您也可以捕獲EntryPointNotFoundException。這是進行自己的互操作時最好的方法,因爲從現在開始,低級操作系統可能會增加功能(通過更新和服務包)。
使用這兩種方法,您可以緩存某種標誌,提醒您沒有任務欄,或者沒有庫或者您沒有任何功能,以節省拋出和捕獲異常的性能。
如果你堅持做自己的版本檢查並看到你在哪個操作系統上,請請記住> =的魔力。你知道有多少代碼在那裏測試的版本是正好 XP SP2,然後提出一個消息框說「需要XP SP2或更高版本」? A ton。事實上,這就是爲什麼Win7的主要版本是6 - 因此所有檢查「等於6」的代碼仍然可以工作。不要成爲那個人。
if (Environment.OSVersion.Version.Major >= 6)
{
if (Environment.OSVersion.Version.Minor >= 1)
// Do Win7 thing
else
// Do Vista thing
}
else if (Environment.OSVersion.Version.Major >= 5)
// Do XP thing
您可以在http://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx
凱特
其實找到所有的主/次編號,該代碼將執行Vista的事情7.0,8.0和其他神祕的未來版本。大鼠,版本檢查很難!只有在確切知道主要版本時才能檢查次要版本。 – 2010-01-29 11:28:35