「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@772) [低] [解決]
@772■ (#2424) {OS}と{OSバージョン}にてWindows10がWindows8になる - 小衣 (2015-08-11 15:22) /低 未処理
【症状】
{OS}と{OSバージョン}にてWindows10がWindows8になる

【再現方法】
Windows10で
「{OS} {OSバージョン}」を言う
を実行

【要望】
Windows10と正しく認識するようにして欲しいです

【バージョン】
1.551 デラックス


(#2425) {OS}と{OSバージョン}にてWindows10がWindows8になる - 小衣 (2015-08-11 15:24) /低 未処理
追加のスクリーンショットです。


(#2427) Re; {OS}と{OSバージョン}にてWindows10がWindows8になる - うぇいく (2015-08-16 11:09) /低 未処理
関連情報。開発者向け。

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

8.1用、もしくは、10用と書かれたマニフェストが付属しない限り、互換性のためにバージョン番号として8相当を返す とのこと。
バージョンの低いOSでも動かそうとした場合、マニフェストで8.1や10を指定するわけにもいかないので簡単な解決方法は無し(別のAPIがあれば・・・)
(互換性のための機能が、このAPIだけとも限らないのにも注意が必要)

(#2428) {OS}と{OSバージョン}にてWindows10がWindows8になる - 小衣 (2015-08-17 02:39) /低 未処理
自分用なのでかなり適当ですが次の方法でとりあえず対処しました。もっといい方法ありそうですが・・・。
【追記】送信すると何故か¥が2倍になってしまいます、実際のプログラムは¥の数が半分です。

//プログラムここから
KEY=『HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion』
KEYのレジストリ開いてHに代入。
Hで「ProductName」をレジストリ読む
それを表示
Hのレジストリ閉じる
「wmic datafile where name="{SYSTEMパスの『\\』を『\\\\』に置換}ntdll.dll" get version > "{テンポラリフォルダ}なでしこOSテスト.txt"」を「{テンポラリフォルダ}\\なでしこOSテストcmd.bat」に保存
「{テンポラリフォルダ}\\なでしこOSテストcmd.bat」を起動待機
OSバージョン2=「{テンポラリフォルダ}なでしこOSテスト.txt」を開いてSJIS変換して「 」を空に置換
「{テンポラリフォルダ}\\なでしこOSテスト.txt」をファイル完全削除
「{テンポラリフォルダ}\\なでしこOSテストcmd.bat」をファイル完全削除
OSバージョン2\\1を表示
//プログラムここまで

//実行結果ここから
Windows 10 Pro
10.0.10240.16430
//実行結果ここまで

(#2429) {OS}と{OSバージョン}にてWindows10がWindows8になる - なっかあ (2015-08-28 16:14) /低 未処理
バージョン情報を取得する処理ですが、こんな感じでどうでしょうか?


//ここから
「wmic os get version」をコマンド実行して表示
//ここまで

(#2430) レジストリから取得するようにしました - クジラ飛行机 (2015-08-30 12:19) /低 確認待ち
この問題に対処するため、OS変数でレジストリから値をとるように修正しますね。
(commit f79423e852636b40ade79b0ebb1ae9ba1e4a991e)


(#2440) 修正確認出来ました - 小衣 (2015-08-30 17:45) /低 解決
皆様ありがとうございました。

(#2424)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能