2015-06-29 40 views
-1

根據MSDN,從Windows 8.1開始,GetVersionEx(獲取當前Windows版本的實際方式)已被棄用。顯然,如果在Windows 8.1或Windows 10的計算機上調用,它將返回錯誤的值(對應於Windows 8)。但是,如果應用程序的清單已相應修改,則可以正確返回。但我不知道這是因爲正在從註冊表中讀取Windows操作系統版本安全嗎?

GetVersionEx可能是Windows 8.1之後被修改或不可用的版本

這麼好的解決方案,我想簡單地讀取信息,我從這個註冊表項需要:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion。

是否有任何理由我應該避免這樣做,因爲目前的情況(API棄用)?

+0

可能的重複[如何在Win8.1中獲取操作系統版本作爲GetVersion/GetVersionEx已棄用?](http://stackoverflow.com/questions/27246562/how-to-get-the-os-version- in-win8-1-as-getversion-getversionex-is-deprecated) –

+0

這不是重複的。在那個問題中,獲得操作系統的解決方案被問到。我問是否安全或不從註冊表獲取此信息。在另一個問題中,我看不到任何提及註冊表的事情。 – conectionist

+0

「*如果在Windows 8.1或10計算機上調用,顯然它會返回錯誤的值(對應於Windows 8)*」 -​​ 僅當您的應用程序不包含這些版本的兼容性清單時。請仔細閱讀文檔。 'GetVersionEx()'現在可以清楚地識別。如果你的應用沒有明確聲明支持Windows 8.1或10,那麼'GetVersionEx()'不會再報告它們。如果你的應用聲稱支持它們,'GetVersionEx()'會按預期報告正確的信息。 –

回答

1

是否有任何理由我應該避免這樣做?

未來版本的Windows不包含您在該註冊表項中需要的信息似乎是合理的。

相關問題