MSDNを引用します:
Registry.GetValue()-メソッド
指定されたレジストリ キーで、指定された名前に関連付けられた値を取得します。指定したキーに名前が見つからない場合は、指定した既定値を返します。指定したキーが存在しない場合は、 null 参照(Visual Basic では Nothing) を返します。
これは、取得しようとしている値が利用できないことを意味します。
可能な解決策を編集:
出典: 「わかりやすい」OS バージョン名を取得するには?
private string GetOSName()
{
var name = (from x in new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get().OfType<ManagementObject>()
select x.GetPropertyValue("Caption")).First();
return name != null ? name.ToString() : "Unknown";
}
OS が 32 ビットか 64 ビットかを確認するには、次のコードを使用します。
private string GetOSBitness()
{
if (Environment.Is64BitOperatingSystem == true)
return " x64";
else
return " x86";
}
上記のコードは次のように返されます (少なくとも私のシステムでは):
Microsoft Windows 7 プロフェッショナル x64