Как объяснено в WOW64, подробности реализации, переменная %PROGRAMFILES%
,
в 32-битном процессе в 64-битной ОС Windows разрешается в
C:\Program Files (x86)
в 64-битном процессе в 64-битной ОС Windows разрешается в
C:\Program Files
Вы можете проверить это, например. с программой Delphi 10.1, скомпилированной как с 32-разрядной целевой платформой Windows, так и с 64-разрядной целевой платформой Windows:
MyShellExecute('%PROGRAMFILES%');
Итак, из 32-битного приложения Delphi, выполненного в 64-битной ОС Windows, как я могу получить ОБА:
каталог ProgramFiles для 32-битных программ (
C:\Program Files (x86)
)каталог ProgramFiles для 64-битных программ (
C:\Program Files
)
MyShellExecute
, насколько я знаю. - person Rudy Velthuis   schedule 12.10.2017His/HerShellExecute
. <грамм> - person Sertac Akyuz   schedule 13.10.2017