Я только что протестировал этот чрезвычайно простой метод , и он отлично работает - но я использую встроенную учетную запись администратора, поэтому мне не нужно перепрыгивать через обручи для повышения привилегий.
Следующий пакетный файл избавляет пользователя от необходимости перемещать файлы в / из системных папок.Кроме того, Windows оставляет за собой право применить правильную версию Regsvr32
.
ИНСТРУКЦИИ:
В папке, содержащей библиотеку(-.dll
или -.ax
) файл, который вы хотите зарегистрировать, откройте новый текстовый файл и вставьте в одну из следующих процедур:
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS
copy %1 C:\Windows\System32
regsvr32 "%nx1"
echo END BATCH FILE
pause
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS
copy %1 C:\Windows\SysWOW64
regsvr32 "%nx1"
echo END BATCH FILE
pause
Сохранить новый текстовый файл как пакетный (-.bat
) файл;затем просто перетащите файл -.dll
или -.ax
поверх файла пакета.
Если UAC не дает вам возможность запустить файл пакета какАдминистратор, вам может потребоваться вручную повысить привилегии (инструкции для Windows 7):
- Щелкните правой кнопкой мыши командный файл;
- Выберите
Create shortcut
; - Щелкните правой кнопкой мыши по ярлыку;
- Выберите
Properties
; - Откройте вкладку
Compatibility
; - Установите флажок
Run this program as administrator
; - Перетащите файл
-.dll
или -.ax
поверх нового ярлыка вместо командного файла.
Вот и все .Я выбрал COPY
вместо MOVE
, чтобы предотвратить неудачу любых последующих попыток, связанных с UAC.После успешной регистрации следует удалить исходный файл библиотеки (-.dll
или -.ax
).
ДонНе беспокойтесь о копиях, сделанных в системную папку (C:\Windows\System32
или C:\Windows\SysWOW64
) предыдущими проходами - они будут перезаписываться при каждом запуске командного файла.
Если вы не запустили неправильный пакетный файл , в этом случае вы, вероятно, захотите удалить копию, сделанную в неправильную системную папку (C:\Windows\System32
или C:\Windows\SysWOW64
) перед запуском нужного пакетного файла, ... или ...
Помогите Windows выбрать правильную библиотекуфайл для регистрации путем полного определения его местоположения в каталоге.
- Из правого пакетного файла скопируйте путь к системной папке
- Если 64-битный:
C:\Windows\System32
- Если 32-разрядный:
C:\Windows\SysWOW64
- Вставьте его в следующую строку, чтобы он предшествовал
%nx1
- Если 64-разрядный:
regsvr32 "C:\Windows\System32\%nx1"
- Если 32-битный:
regsvr32 "C:\Windows\SysWOW64\%nx1"
- Вставить путь внутри кавычек
- Вставить обратную косую черту, чтобы отделить
%nx1
от пути к системной папке
- или ...
Запустить этот пакетный файл ружья, который (по порядку):
- Выполнит очистку прерванной регистрациипроцессы
- отменить любой процесс регистрации, завершенный файлом вашей библиотеки;
- удалить все копии файла библиотеки, которые были сохранены в любой системной папке;
- сделать паузу, чтобы вы моглипрервите пакетный файл в этот момент (и запустите другой, если хотите).
- Попытка 64-битной установки в файл библиотеки
- Скопируйте файл библиотеки в
C:\Windows\System32
; - Зарегистрируйте ваш библиотечный файл как 64-битный процесс;
- Пауза, позволяющая завершить пакетный файл на этом этапе.
- Отменить 64-битную установку
- Отменить любую регистрацию вашего библиотечного файла как 64-битной процедурыss;
- Удалите файл библиотеки из
C:\Windows\System32
; - Сделайте паузу, чтобы разрешить вам завершить пакетный файл в этот момент (и запустить другой, если хотите).
- Попытка 32-разрядной установки в файл библиотеки
- Скопируйте файл библиотеки в
C:\Windows\SystemWOW64
- Зарегистрируйте файл библиотеки как 32-разрядный процесс;
- Пауза, позволяющая завершить пакетный файл на этом этапе.
- Удалить оригинальную незарегистрированную копию файла библиотеки