Возможно, вы получаете неверную переменную окружения. Если ваше приложение является 32-разрядным приложением, работающим в 64-разрядной ОС, версия процесса этой переменной среды вернет x86. Если вы хотите найти архитектуру машины, вы можете получить ее из следующей записи реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE
Или, если вы используете .NET, вы можете использовать этот вызов, чтобы получить его:
string arch = System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE",
EnvironmentVariableTarget.Machine);
Из командной строки вы можете попробовать это:
reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
Существует даже более простое решение, использующее cmd
:
ECHO %PROCESSOR_ARCHITECTURE%