Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Регистрация и разрегистрация DLL одним bat

Ответить
Настройки темы
CMD/BAT - Регистрация и разрегистрация DLL одним bat

Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Уважаемые, как прописать в одном bat регистрацию и разрегистрацию DLL??
т.е. при запуске проверяется зарегистрирована ли DLL, если да - разрегистрировать, если нет - зарегистрировать.

Отправлено: 10:15, 21-06-2017

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Sisin,
может так?
Код: Выделить весь код
@echo off
set "sPath=%SystemRoot%\System32\regsvr32.exe"
::if not "%Processor_Architecture%"=="x86" set "sPath=%systemRoot%\SysWoW64\regsvr32.exe"
set "xDLL=C:\Windows\system32\ntshrui.dll"
call :prov "%xDll%"
pause& exit

:prov
 reg query "HKEY_CLASSES_ROOT\CLSID" /s /f "InprocServer32" /k /ve|>nul find /i "%~nx1" && (
  echo Зарегистрирована [%sPath% /u "%xDll%"]
 ) || (
  echo Не зарегистрирована [%sPath% "%xDll%"]
 )
exit /b

Отправлено: 12:40, 21-06-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Тронул гусляр струны и понеслись девчата в пляс...

Отправлено: 12:41, 21-06-2017 | #12


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата alpap:
может так? »
Я же должен свою dll только тут вписать: set "xDLL=XXX.dll"????

Отправлено: 13:09, 21-06-2017 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата y--:
написанный код был перепроверен несколько раз... Работает. »
Цитата y--:
для наглядности отладки при проверке... »
У меня — так:
Скрытый текст

То есть, конечным результатом Вашего кода:
Код: Выделить весь код
regsvr32 "%MY_DLL%" /u /s||regsvr32 "%MY_DLL%" /s
всегда будет отмена регистрации библиотеки, зарегистрировать её никогда не получится.

Windows 7 x64.

Отправлено: 13:41, 21-06-2017 | #14


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Sisin:
только тут вписать: set "xDLL= »
да, с полным путем к ней

Отправлено: 14:00, 21-06-2017 | #15


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата alpap:
да, с полным путем к ней »
А как сделать с неполным? (т.е. dll лежат в папке с bat) И чтобы не одна dll, а две регистрировались/разрегистрировались??

Прошу прощения, за мои излишние хотелки...

Отправлено: 14:19, 21-06-2017 | #16


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Sisin,
проверил - все это чепуха, никакой разницы в реестре нет между снимком до регистрации и после или наоборот, значит определить зарегистрирован (или нет) файл нельзя, а значит и остальная петрушка до лампочки, только жесткие команды, надо регистрировать - регистрируем, или unregister.

Отправлено: 14:31, 21-06-2017 | #17

y-- y-- вне форума

Старожил


Сообщения: 231
Благодарности: 62

Профиль | Отправить PM | Цитировать


Iska
так трудно выполнить
Код: Выделить весь код
regsvr32 "%MY_DLL%" /u||regsvr32 "%MY_DLL%"
три раза подряд для одной и той же DLL? И внимательно почитать результаты выполнения в графических окошках...

-------
Ты это - заходи если что...


Отправлено: 14:35, 21-06-2017 | #18


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


y--, выполнил раз. Выполнил два. Выполнил три. И даже четыре. Внимательно почитал. Каждый раз одно и то же:



и только. А у Вас?

Отправлено: 14:58, 21-06-2017 | #19

y-- y-- вне форума

Старожил


Сообщения: 231
Благодарности: 62

Профиль | Отправить PM | Цитировать


Iska
Запускаю отладочный скрипт "от имени администратора" такого содержания:
Код: Выделить весь код
@ECHO OFF
SET "MY_DLL=C:\Program Files (x86)\1cv8\8.3.9.2170\bin\comcntr.dll"
regsvr32 "%MY_DLL%" /u||regsvr32 "%MY_DLL%"
ось - Win2012 R2, начальное состояние библиотеки - зарегистрирована
первый запуск два всплывающих окна:

и

второй запуск одно окно:

Далее все по циклу...

-------
Ты это - заходи если что...


Отправлено: 15:42, 21-06-2017 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Регистрация и разрегистрация DLL одним bat

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Пропадает регистрация DLL Maza11 Microsoft Windows 2000/XP 4 18-02-2014 19:18
Разное - регистрация dll tj-9 Программирование и базы данных 3 02-04-2013 17:43
Регистрация *.dll SiNiK Хочу все знать 3 29-06-2012 14:28
CMD/BAT - [решено] регистрация группы DLL astrolit Скриптовые языки администрирования Windows 1 13-12-2011 11:19
Разное - [решено] регистрация DLL ya.dever Microsoft Windows 7 3 02-07-2011 05:46




 
Переход