AVZ 5. Руководство пользователя
×
Меню
Индекс

16.30.21. Редиректор реестра

В 64 разрядных версиях Windows в реестре ряд ключей имеет две версии - для x32 и x64 приложений. Данная особенность предусмотрена для совместимости, по умолчанию x32 приложению доступны x32 версии ключей, для x64 - соответственно x64 версии. В итоге, к примеру ключ HKEY_LOCAL_MACHINE\SOFTWARE\ x32 и x64 приложения "видят" по разному (фактически, версия ключа HKEY_LOCAL_MACHINE\SOFTWARE\ для x32 приложений хранится в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node). Данный эффект возникает за счет так называемого "редиректора". По умолчанию AVZ и запускаемые в нем скрипты работают с x32 версиями системных ключей реестра, переключение режима возможно двумя методами:
 
1. При помощи изменения параметра X64R при помощи функции SetupAVZ. Действует глобально на время работы скрипта, может встречаться в скрипте многократно. Каждый вызов переключит редиректор в заданный режим, этот режим будет действовать до следующего переключения. В частности, SetupAVZ('X64R=NX') выключает редиректор реестра и функции скрипта обращаются к x64 версиям ключей реестра. В этом режиме доступен ключ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node с x32 версией ключей реестра. SetupAVZ('X64R=YX') включает редиректор, становятся доступны только x32 версии ключей реестра. В 32 разрядной версии Windows данная настройка игнорируется, вызов SetupAVZ('X64R=NX') не вызовет ошибки.
 
2. При помощи необязательного аргумента ARedirMode функций по работе с реестром, поддержка которого добавлена в AVZ версии 5. Возможны следующие варианты:
Очевидно, что первый вариант удобен, если необходимо выполнить множество неких операций с заданным состояние редиректора реестра. Второй вариант удобен для разовых операций с реестром, особенно когда режим редиректора заранее неизвестен.