Как зарегистрировать расширение оболочки
Расширение оболочки можно зарегистрировать с помощью консольной утилиты regsvr32.exe, входящей в состав операционной системы Windows. Для этого нужно запустить ее на выполнение с переданным в качестве параметра полным путем к вашему dll файлу:
В 64 битных системах присутствует как 64 битная версия regsvr32, так и 32 битная. При этом при передаче в 64 битную версию regsvr32 32 битного расширения regsvr32 самостоятельно запустит 32 битную версия regsvr32 и передаст ей имя расширения. Обратное также верно. Это позволяет Regsvr32 любой разрядности корректно регистрировать как 32, так и 64 битные расширения.
Процедура регистрации расширения оболочки требует наличия прав администратора. Поэтому в Windows XP и более старых системах регистрацию нужно производить с аккаунта, имеющего соответствующие права. Начиная с Windows Vista и более современных системах появилась возможность запроса прав администратора. Поэтому в этих системах, если у вас нет прав администратора, запуск утилиты regsvr32.exe рекомендуется производить в консоли, запущенной командой "Run as administrator":
В состав библиотеки Shell Ace входит расширение оболочки RegExtension. Если при установке Shell Ace вы выбрали установку данного расширения, то регистрацию/снятие регистрации можно произвести средствами RegExtension. При регистрации в системе RegExtension добавляет в контекстное меню, появляющееся при нажатии правой кнопки мыши на dll-файле, два пункта Register и Unregister, при выборе которых будет запущена процедура регистрации и снятия регистрации:
При отсутствии прав администратора у текущего пользователя расширение запросит их повышение, при этом появится соответствующий диалог, в котором нужно подтвердить повышение привилегий.
Также расширение RegExtension добавляет в программу Проводник дополнительные кнопки на панель задач (только в Windows XP и Windows 7):
Действие дополнительных кнопок аналогично действию соответствующих команд контекстного меню.
При распространении ваших расширений рекомендуется пользоваться регистрацией с использованием утилиты regsvr32, поскольку она в конечном итоге вызывает функционал библиотеки Shell Ace. Данная рекомендация связана с тем, что при регистрации расширений помимо регистрации непосредственно COM объекта могут прописываться неявные ключи.
Так, например, при регистрации расширения Preview handler в зависимости от того, какие методы загрузки данных вы используете в расширении, может записываться ключ DisableLowProcessIsolation. По умолчанию Проводник пытается передать в Preview handler файловый поток, а в случае неудачи прекращает работу с расширением, и если вы в расширении используете чтение данных из файла, а не из потока, то ваше расширение в данной ситуации просто не будет работать. Для решения данной проблемы и служит ключ DisableLowProcessIsolation. Он заставляет Проводник передавать в расширение имя файла вместо потока.
Подобные неочевидные ключи значительно влияют на работу расширений, и регистрация расширения с использованием утилиты regsvr32 избавляет вас от необходимости удерживать в голове множество мелких деталей и позволяет сосредоточиться на главном - на функциональности вашего расширения.
Смотрите также:
- Что такое расширение оболочки
- Какие бывают расширения оболочки
- Как создать расширение оболочки
- Инициализация расширений оболочки
- Как создать расширение оболочки Context menu
- Как создать расширение оболочки Drag and drop context menu
- Как создать расширение оболочки Drop target
- Как создать расширение оболочки Icon
- Как создать расширение оболочки Info tip
- Как создать расширение оболочки Overlay icon
- Как создать расширение оболочки Preview
- Как создать расширение оболочки Property sheet
- Как создать расширение оболочки Property store
- Как создать расширение оболочки Thumbnail
- Как зарегистрировать расширение оболочки
- Как отлаживать расширение оболочки
- Использование логов