Question

TAKAKUN on Thu, 28 Sep 2017 07:59:26


お世話になります。

Windows10のバージョン番号の取得はどのようにするのでしょうか。

RtlGetVersionーAPIを使用することはわかったのですが、
メジャーバージョン(10)とOSビルドしかとれません。

Windows10の4桁のバージョン番号を取得する方法はありますか。


Sponsored



Replies

kenjinote on Thu, 28 Sep 2017 08:59:43


私の知る限りですが、winver.exe などで表示されるビルド番号の後ろのドットで区切られた数字(上の図では1715)を直接取得する API はないと思います。

レジストリ "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" の

"UBR" に値が埋まっていますので、その値を取得するのはいかがでしょうか?

参考サイト: http://www.atmarkit.co.jp/ait/articles/1704/04/news008_2.html

qt6 on Thu, 28 Sep 2017 11:03:14


四桁が 1607 とか 1703 のことを言っているのであれば、

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

の直下にある ReleaseId で取得できます。

佐祐理 on Thu, 28 Sep 2017 13:30:44


お二方が回答されている通りで、winverコマンドが表示する際に参照しているレジストリ値を確認しました。

jzkey on Thu, 28 Sep 2017 13:59:03


でもどーでしょーね、今はそのレジストリみれば取れますけど、GetVersion APIみたいに「そこのレジストリも固定化/暗号化/Manifestによる仮想化しました」みたいな変更が、あるいは将来のWindows10では実施されるかもしれませんけどね。

佐祐理 on Thu, 28 Sep 2017 14:11:18


今後がどうなろうと現時点でこの値が参照されている以上、この値を参照するしかないのでは…?