Разрядность Windows в .Net с примером на C#


Часто возникает задача программного определения разрядности операционной системы Windows из программ для платформы .Net.

На ум может сразу же придёт много простых и грязных решений, типа:

  • Проверить существование ветки реестра HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node
  • Проверить размер указателя VoidPtr
  • Убедиться в наличии на диске каталога Program Files (x86)
  • Получить значение переменной среды %PROCESSOR_ARCHITECTURE%

Последний вариант - почти годный, если бы не одно но. Если под 64-битной операционкой запущен 32-битный процесс, этот процесс считает из %PROCESSOR_ARCHITECTURE% значение "x86".

Так вот, зачем я пишу эту статью. Вместо этих танцев с бубнами лучше использовать функцию Environment.Is64BitOperatingSystem, появившуюся в четвёртом .Net Framework. Просто работает.

29 января 2014 02:57 — Георгий Чурочкин