Цель этого состоит в том, чтобы стандартные папки "программные файлы" (32 и 64-разрядные) по умолчанию располагались по произвольному пути, возможно, на диске, отличном от того, где живет Windows.
Первоначально я думал, что это можно сделать с помощью системной переменной среды через диалоговое окно, расположенное под Панели управления -> Система -> Дополнительно -> Переменные среды. Эти переменные оказались в реестре под ключом HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion
. Однако одна конкретная запись сбивает с толку. Кажется, запись ProgramFilesPath
указывает на переменную среды, которая не определена в том же разделе реестра.
Я мог бы предположить, что разницы между ProgramFilesDir
и ProgramFilesPath
нет, и что одна из них существует как обратная совместимость, но иметь какой-то законный ресурс от Microsoft для просмотра было бы лучше, чем догадываться.
После получения некоторых тревожных отзывов о том, что 32-разрядные и 64-разрядные приложения находятся в одной папке, я решил не спрашивать о целесообразности этого, чтобы избежать обсуждения.
Реальный вопрос заключается в том, можно ли достичь желаемого эффекта, "обрезая" процесс установки Windows и изменяя эти записи реестра как можно раньше. Эти настройки должны быть общесистемными, а не только для программного обеспечения, установленного конкретным пользователем. Если это действительно то, что можно сделать, мне интересно, есть ли какие-нибудь тонкие ловушки.
С программами, которые ожидают, что библиотеки и другие ресурсы находятся в расположениях по умолчанию, вероятно, можно будет использовать тот же метод, который используется в Windows для повторного сопоставления папок "Документы и настройки" и т. П. (Т. Е. Ломать устаревшие приложения не является реальной проблемой).