Как зарегистрировать расширение оболочки

Расширение оболочки можно зарегистрировать с помощью консольной утилиты regsvr32.exe, входящей в состав операционной системы Windows. Для этого нужно запустить ее на выполнение с переданным в качестве параметра полным путем к вашему dll файлу:

Запуск командной строки
Регистрация расширения оболочки

Для снятия регистрации нужно запустить эту же утилиту, но кроме пути нужно дополнительно указать ключ /u:

Снятие регистрации расширения оболочки

В 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

При отсутствии прав администратора у текущего пользователя расширение запросит их повышение, при этом появится соответствующий диалог, в котором нужно подтвердить повышение привилегий.

Также расширение RegExtension добавляет в программу Проводник дополнительные кнопки на панель задач (только в Windows XP и Windows 7):

RegExtension
RegExtension

Действие дополнительных кнопок аналогично действию соответствующих команд контекстного меню.

При распространении ваших расширений рекомендуется пользоваться регистрацией с использованием утилиты regsvr32, поскольку она в конечном итоге вызывает функционал библиотеки Shell Ace. Данная рекомендация связана с тем, что при регистрации расширений помимо регистрации непосредственно COM объекта могут прописываться неявные ключи.

Так, например, при регистрации расширения Preview handler в зависимости от того, какие методы загрузки данных вы используете в расширении, может записываться ключ DisableLowProcessIsolation. По умолчанию Проводник пытается передать в Preview handler файловый поток, а в случае неудачи прекращает работу с расширением, и если вы в расширении используете чтение данных из файла, а не из потока, то ваше расширение в данной ситуации просто не будет работать. Для решения данной проблемы и служит ключ DisableLowProcessIsolation. Он заставляет Проводник передавать в расширение имя файла вместо потока.

Подобные неочевидные ключи значительно влияют на работу расширений, и регистрация расширения с использованием утилиты regsvr32 избавляет вас от необходимости удерживать в голове множество мелких деталей и позволяет сосредоточиться на главном - на функциональности вашего расширения.

Смотрите также: