Das folgende Skript erkennt ob es sich um ein 32bit oder 64bit Version des Betriebssystem handelt. Laut meinen Untersuchungen wird bei einem 32bit Windows der Processor immer mit x86 im RegestryKey LocalMachine\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier ausgegeben. Bei einem 64bit System wird EM64T ausgegeben. Da ich leider nur ein System mit einem 64bit Betriebssystem zur Verfügung habe weiß ich nicht ob der Wert z.B. bei einem AMD Prozessor eventuell ein anderer ist. Aus diesem Grund prüfe ich nur auf x86 und nehme an das alles andere 64bit ist.
Ab .NET 4.0 kann auch Environment.Is64BitOperatingSystem verwendet werden
string _strOS="";
RegistryKey _rootKey = Registry.LocalMachine;
string _subKey = @"HARDWARE\DESCRIPTION\System\CentralProcessor\0";
RegistryKey _key = _rootKey.OpenSubKey(_subKey);
string _procName = (string)_key.GetValue("Identifier", "");
string[] _values = _procName.Split(new char[] { '' '' }, 2);
if (_values.Length >= 1)
{
if (string.Compare(_values[0], "x86", true) == 0)
{
_strOS += "(32bit)";
}
else
{
_strOS += "(64bit)";
}
}
9 Kommentare zum Snippet