Верьте или нет, мой установщик настолько стар, что у него нет возможности обнаруживать 64-разрядную версию Windows.
Есть ли вызов Windows DLL или (еще лучше) переменная среды, которая предоставит эту информацию для Windows XP и Windows Vista?
Одно из возможных решений
Я вижу, что в Википедии указано, что 64-разрядная версия Windows XP и Windows Vista имеет уникальную переменную среды: %ProgramW6432%, поэтому я предполагаю, что она будет пустой в 32-разрядной Windows.
Эта переменная указывает на каталог Program Files, в котором хранится вся установленная программа Windows и другие. По умолчанию в англоязычных системах используется C:\Program Files. В 64-разрядных версиях Windows (XP, 2003, Vista) есть также %ProgramFiles(x86)%, который по умолчанию равен C:\Program Files (x86) и %ProgramW6432%, который по умолчанию равен C:\Program Files. Сама %ProgramFiles% зависит от того, является ли процесс, запрашивающий переменную среды, самой 32-разрядной или 64-разрядной (это вызвано 64-разрядным перенаправлением Windows-on-Windows).