Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520

Доработать скрипт регистрации dll & ocx

28.08.2013, 21:10. Показов 6367. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят,я дико сорри...но понадобился мне замечательный скрипт:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
if "%1"=="" (
  Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"1","","runas",1 >"%~dp0Elevating.vbs"
  cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"& Goto :eof
)
>nul del "%~dp0Elevating.vbs"
chdir /d "%~dp0"
for /f "delims=" %%A in ('dir /b /s /a-d-L "%~dp0*.dll","%~dp0*.ocx"') do (
  Echo Регистрация %%A
  regsvr32.exe "%%A"
  rem regsvr32.exe /s "%%A"&Rem Silent-режим регистрации
)
pause
Из темы:
https://www.cyberforum.ru/post4259662.html

Ну элевацию правов я конечно заделаю,определение ОС тоже.
А вот такой момент как решить:
не все библиотеки/dll регистрируются,надо как то сделать что бы если получается ошибка регистрации то она автоматом пропускается и заносится в лог.
И да-папку надо указать из переменной %windir%

Честно -не справлюсь с пропуском и логированием кода.
Помогете?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2013, 21:10
Ответы с готовыми решениями:

Проверка регистрации OCX-компонента
Каким образом проверить, зарегистрирован ли OCX в ОС?

Добрый день! При регистрации библиотеки cscmd32.ocx ошибка 0x80040200
Суть проблемы такова: Имеется программа, она работает с базой, стояла на XP. При установке на Win7 (x86) возникает проблема регистрации...

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' & ''' &...

26
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.08.2013, 21:38
Некоторые DLL нельзя зарегистрировать, пока работают процессы или службы их использующие.
Вот например батник (собранный с разных сайтов), который как пишут, может излечить нерабочий Windows Update:

Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@echo off
ver |>nul find "6." && call :Invoke_UAC
 
cd /d "%windir%\system32"
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIdValidation /f
net stop bits
net stop wuauserv
regsvr32 /u wuaueng.dll /s
move %windir%\windowsupdate.log %windir%\windowsupdate.old.log
move %windir%\SoftwareDistribution %windir%\SoftwareDistribution.old
REGSVR32 /s atl.dll
REGSVR32 /s initpki.dll
REGSVR32 /s mssip32.dll
REGSVR32 /s softpub.dll
REGSVR32 /s wuapi.dll
REGSVR32 /s wups.dll
REGSVR32 /s wuaueng.dll
REGSVR32 /s wucltui.dll
REGSVR32 /s MSXML3.dll
REGSVR32 /s MSXML.DLL
REGSVR32 /s MSXML2.DLL
REGSVR32 /s wuaueng1.dll
REGSVR32 /s wups2.dll
REGSVR32 /s wuweb.dll
regsvr32 wuaueng.dll /s
net start bits
net start wuauserv
wuauclt.exe /resetauthorization /detectnow
 
echo Теперь необходимо перезагрузить компьютер.
pause>nul
exit /B
 
:Invoke_UAC
if "%1"=="" (
  Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"1","","runas",1 >"%~dp0Elevating.vbs"
  start "" /min cscript.exe //nologo "%~dp0Elevating.vbs" "%~f0"& Exit
) else (
  chdir /d "%~dp0"
  del "%~dp0Elevating.vbs"
)
Exit /B


С получением отчета от regsvr32 пока засада. %errorlevel% не возвращает.
Скорее всего нужно анализировать лог в системных событиях.
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
28.08.2013, 21:40  [ТС]
ых...
Цитата Сообщение от Dragokas Посмотреть сообщение
пока работают процессы или службы их использующие
тут поможет ребут и папка скрипт.
но если вывод отказов в лог никак-то смысл теряется...
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
28.08.2013, 22:01
Цитата Сообщение от Koza Nozdri Посмотреть сообщение
но если вывод отказов в лог никак-то смысл теряется...
Проверить - вроде никак.

Но вот получить через WMIC PID процессов, юзающих эти dll - реально, главное, чтобы не системные.
Ну а потом тасккилл и зеленый свет
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
28.08.2013, 22:06
RegDllView http://www.nirsoft.net/utils/r... _view.html показывает зарегистрированные dll и приложения, которые их используют.
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.08.2013, 03:04
FraidZZ, подскажи какой класс/свойства ?
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
29.08.2013, 12:11
Лучший ответ Сообщение было отмечено как решение

Решение

Извиняюсь, не wmic process get, а tasklist /m [имя длл]

Также принимает маски.
Например:
Bash
1
tasklist /m dsrole*
3
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
29.08.2013, 18:29  [ТС]
Цитата Сообщение от FraidZZ Посмотреть сообщение
tasklist /m [имя длл]
а так пойдет?
Bash
1
tasklist /m *.*
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.08.2013, 18:35
Нет, а зачем?

Bash
1
tasklist /m *
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
30.08.2013, 10:22  [ТС]
Все.
Придумал.

Столкнулся с такой фигней:

почему запись вида
Bash
1
regsvr32 /s IpsPlugin.dll >>%userprofile%\regsrv.txt
ничего не записывает в текстовый файл?
там пусто емае.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
30.08.2013, 10:25
Цитата Сообщение от Koza Nozdri Посмотреть сообщение
Придумал.
Что придумал?

Цитата Сообщение от Koza Nozdri Посмотреть сообщение
ничего не записывает в текстовый файл?
потому что утилита GUI-шная (оконная).
Она вообще ничего не возвращает, только может получать аргументы.

Добавлено через 1 минуту
Посмотри для приличия лог системных событий или где там оно еще может оставлять в системе отчет о регистрации. Должно быть. Чтоб хотя бы знать направление поисков. (если сис. логи, то самый простой инструмент быдет тулза - Log Parser. Я с ней сильно не знаком. Но она умеет разбирать такие логи).
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
30.08.2013, 10:26  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Что придумал?
аемае.
тогда не придумал.
вырвал все что можно зарегать и записал в батник.
думал эррор из лога мне поможет в сортировке событий.
придется несколько иначе.

а можно как то в коде указать что если регистрациа не гуд-тогда экхо

Bash
1
regsvr32 /s IpsPlugin.dll ||echo ошибка регистрации >%userprofile%\regsrv.txt
щас попробую.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
30.08.2013, 10:28
Не, не выйдет. Оно по Errorlevel-у работает. Там всегда 0.

В крайнем случае в ветке по ОСи спроси. Мож, Catstail'a подключи, вдруг знает...

Добавлено через 44 секунды
У него куча статей именно по либам.
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
30.08.2013, 10:34  [ТС]
ЕСТЬ!!!!!
РАБОТАЕТ!!!

Все,теперь есть реально утилита регистрации ВСЕХ библиотек и длл с помощью которой можно увидеть что не получается зарегать)))

Добавлено через 28 секунд
Цитата Сообщение от Dragokas Посмотреть сообщение
в ветке по ОСи спроси
Смешно...там много кто ответит)))

Добавлено через 1 минуту
единственное -надо придумать как возвращать имя объекта в месте с echo...

Добавлено через 3 минуты
доведу вечером до ума,можно в полезные скрипты будет зпостить если надо.
время обед а я еще дома,погнал на работу.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
30.08.2013, 10:46
Цитата Сообщение от Koza Nozdri Посмотреть сообщение
что не получается зарегать)))
что ты придумал?
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
30.08.2013, 20:16  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
что ты придумал?
Каждая ось имеет свой набор зарегестрированных файлов.
Я выкатил этот список и сохранил,добавив команду регистрации с логированием в случае отказа.
Все просто)))
Код пока что деревянный,но уже работает.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
30.08.2013, 20:41
я хотел узнать, как ты с этим разобрался:
Цитата Сообщение от Koza Nozdri Посмотреть сообщение
с логированием в случае отказа.
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
30.08.2013, 21:08  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
я хотел узнать, как ты с этим разобрался:
вот так:
Bash
1
regsvr32 /s oledb32.dll || echo Registration error: oledb32.dll >>%userprofile%\regsrv.txt Ожидайте...
имена-взял из всех зарегестрированных с подписью макрософак,получилось много (около 1000 объектов) но точно как в аптеке.
поди попробуй стока инфы по каждой в сети поискать или запомнить-не получится однако.
Скрипт помог решить очень сложную задачу,юзер маялся не мог решить проблему с виндой.
Помогло)))
Спасибо за терпение и советы.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
30.08.2013, 21:12
Koza Nozdri, да пока не за что.
А ты на какой системе проверял? - у меня на 7-ке не работает.
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
30.08.2013, 21:14  [ТС]
так на семерке и работает,на 4 компах+ у юзера.
скриптом попробуй-тока это по бырому делал,не смеяться)))
Вложения
Тип файла: rar regsvr_win_7.rar (10.0 Кб, 82 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2013, 21:14
Помогаю со студенческими работами здесь

OCX, DLL и сама программа
Можно ли как-то добавить в программу все нужные DLL и OCX файлы так, чтобы они работали "внутри" программы, а не в system32? Или...

Невозможно зарегистрировать DLL/OCX
Добрый день. Помогите, пожалуйста. при попытке установки Kutools for Excel (Надстройка для Экселя) выскакивает такое сообщение: ...

Как превратить dll в ocx в VB 6.0?
Среда разработки, в которой я работаю (не VB 6.0) не понимает dll, но понимает ocx. Как превратить dll в ocx в VB 6.0?

Где можно найти много .ocx и .dll
спасибо

Для чего нужны .DLL и .OCX файлы?
Подскажите, пожалуйста, как написать программу на VisualBasic for Application 6.0 с исползованием .DLL и .OCX файлов. А точнее, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru