web-dev-qa-db-ja.com

レジストリからWindowsバージョンを取得する信頼できる方法

次のレジストリキーをチェックして、インストーラー(NSISで作成)でWindowsバージョンをチェックしています。

HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"

MSDNの this post および this page によると、Windows 10のcurrentVersion番号は10.0である必要があります。

Windows 10 Pro Insider Previewをインストールしたばかりで、レジストリに指定されているバージョン番号は、本来の10.10ではなく6.3です。

レジストリにWindows 10を検出する別の信頼できる方法はありますか?

10
skuallpa

CurrentVersionを読み取る代わりに、Windows 10で新しい値CurrentMajorVersionNumber(10)とCurrentMinorVersionNumber(0)を読み取ります。それら 2キーレジストリからWindowsバージョンを検出するためのWindows 10の新機能

14
magicandre1981

試してみる

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ReleaseId

それは私に10と1709を与えます。

2
Temujin

https://arstechnica.com/information-technology/2014/11/why-windows-10-isnt-version-6-any-more-and-why-it-will-probablyのPeter Brightの記事を参照してください。 -work / 回答が表示される理由の詳細を確認します。すでに@ magicandre1981で見たように、CurrentMajorVersionNumberキーは、必要な「10」を提供します。 10.0をSystem.Environment.OSVersionifから取得できます。アプリケーションマニフェストexplicitlyはWindows用のアプリを指定します10、参照記事に記載されているとおり。これがない場合、Environment.OSVersionは6.2.9200を提供します。これはWindows 8と同じです。したがって、Windows 10バージョンは、質問の方法に応じて10.0、6.3、または6.2です。

1
John Whitmire