Содержание
В этом посте рассказывается, как добавлять команды регистрации и отмены регистрации в контекстное меню для файлов DLL и OCX в Windows Vista, 7, 8 и 10.
Чтобы зарегистрировать файл DLL или OCX, вам обычно нужно запустить regsvr32.exe из командной строки с повышенными привилегиями. Регистрация системных DLL из невыполненного состояния может вызвать ошибку. Например, попробуйте зарегистрировать системный модуль JScript.dll из поля «Пуск», «Поиск» (т.е. без его повышения). При этом вы увидите ошибку 0x80004005 или 0x80007005 («ДОСТУП ОТКЛОНЕН»).
Способ 1: зарегистрировать библиотеки DLL через контекстное меню — глагол «runas»
Чтобы добавить команду «Регистрация» в контекстное меню, которое запустит Regsvr32.exe Команда под повышенными правами, вы можете использовать специальный глагол runas. Вот REG-файл, который я создал, добавляет глагол runas для типов файлов DLL и OCX в следующих разделах реестра:
HKEY_CLASSES_ROOT\dllfile\runas HKEY_CLASSES_ROOT\ocxfile\runas
- Скачать файл register_runas.reg и сохранить на рабочий стол.
- Щелкните правой кнопкой мыши файл и выберите «Объединить».
- Нажмите Да, когда вас попросят подтвердить.
Теперь вы должны увидеть команду Register (as Administrator) в контекстном меню для типов файлов DLL и OCX.
Способ 2: Установите Regsvr32.exe, чтобы всегда работать с повышенными правами
Поскольку вы можете использовать глагол «runas» только для одного элемента, чтобы добавить команду «Unregister», вам нужно использовать метод, отличный от описанного выше. Вот еще один способ добавить команды «Зарегистрировать» и «Отменить регистрацию» в контекстное меню для файлов DLL без использования глагола «runas».
Этот метод указывает системе всегда запускать Regsvr32.exe с повышенными правами, добавляя AppCompatFlags\Layers
запись реестра и реализует записи контекстного меню «Зарегистрировать» и «Отменить регистрацию» обычным способом.
REG-файл
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\Windows\\System32\\regsvr32.exe"="~ RUNASADMIN" [HKEY_CLASSES_ROOT\DllFile\Shell\Register] "HasLUAShield"="" [HKEY_CLASSES_ROOT\DllFile\Shell\Register\command] @="C:\\Windows\\System32\\regsvr32.exe \"%1\"" [HKEY_CLASSES_ROOT\DllFile\Shell\Unregister] "HasLUAShield"="" [HKEY_CLASSES_ROOT\DllFile\Shell\Unregister\command] @="C:\\Windows\\System32\\regsvr32.exe -u \"%1\"" [HKEY_CLASSES_ROOT\OcxFile\Shell\Register] "HasLUAShield"="" [HKEY_CLASSES_ROOT\OcxFile\Shell\Register\command] @="C:\\Windows\\System32\\regsvr32.exe \"%1\"" [HKEY_CLASSES_ROOT\OcxFile\Shell\Unregister] "HasLUAShield"="" [HKEY_CLASSES_ROOT\OcxFile\Shell\Unregister\command] @="C:\\Windows\\System32\\regsvr32.exe -u \"%1\""
Скопируйте вышеуказанные строки в Блокнот и сохраните файл с расширением .reg. Дважды щелкните, чтобы запустить файл .reg. Это добавляет команды «Зарегистрироваться» и «Отменить регистрацию» в контекстное меню для файлов DLL и OCX.
Чтобы удалить (отменить) команды Register и Unregister из контекстного меню, используйте следующий файл .reg:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\Windows\\System32\\regsvr32.exe"=- [-HKEY_CLASSES_ROOT\DllFile\Shell\Register] [-HKEY_CLASSES_ROOT\DllFile\Shell\Unregister] [-HKEY_CLASSES_ROOT\OcxFile\Shell\Register] [-HKEY_CLASSES_ROOT\OcxFile\Shell\Unregister]
Это оно!