список зарегистрированных в системе дллов?
Здравия. 🙂
Помогите с помощью VBScript’a вытащить список зарегистрированных в системе дллов.
Спасибо.
7 ответов
24 апреля 2009 года
3.4K / / 20.09.2006
Смотря какой–HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs или тот,что в VB в диалоге References
24 апреля 2009 года
5 / / 24.04.2009
не знаю где они хранятся
пишеш
regsvr32 dll_name.dll
и дллка регистрируется в ОС.
Так вот, как получить весь список?
а надо для следующего:
есть файл со списком дллов.
1. regsvr32 /u ***.dll
2. проверить все ли ушли.
3. regsvr32 ***.dll
так вот. второй пункт 🙁
ответ команды regsvr32 не подходит
(доверяй, но проверяй)
24 апреля 2009 года
3.3K / / 19.06.2008
Так это вам зарегистрированные COM-интерфейсы нужны. Это перебором. По HKCR\CLSID. Хотя ничто не помешает некоей абстрактной Dll-ке в Dll(Un)RegisterServer делать все что заблагорассудится и регистрироваться совсем не там, но это так, мелочи
24 апреля 2009 года
3.4K / / 20.09.2006
Почему-то так и думал,что именно COM:)
Не буду врать,но где-то у меня вроде был пример,который эти DLL перечислял
Хотите все COM-интерфейсы в системе посбивать,чтоб ни одна программа не работала?;)
27 апреля 2009 года
5 / / 24.04.2009
да, не все, а определенные надо удалить,
затем заменить их на новые и вновь зарегистрировать.
@pixo $oft Был бы признателен за кодик
27 апреля 2009 года
3.4K / / 20.09.2006
Так не проще те,которые надо заменить,разрегистрировать,подменить(так,я понимаю?) и зарегистрировать вновь?
P.S.Насчёт кода:я немного ошибся(память подвела)–этот код перечисляет элементы по ClsId,и то не все,а только те,в которых есть OLE DB provider.Впрочем,этот код легко можно адаптировать под свои нужды
Небольшая проблема–он находится в книге,и он немаленький.Я не совсем щедр на время,чтобы его ещё и набрать:)
Книга Стивена Романа «Visual basic.Библиотека Win32 API»
29 апреля 2009 года
5 / / 24.04.2009
Спасибо за помощ 🙂
Function regfile
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set WshShell = CreateObject(«WScript.Shell»)
WshShell.Run «regedit /e c:\RegDll.txt HKEY_CLASSES_ROOT\CLSID\»,1,true
WScript.Sleep 1000
End Function
RegDllView v.1.57 — утилита, отображающая список зарегистрированных в системе dll/ocx/exe-файлов

RegDllView — небольшая бесплатная утилита, отображающая список зарегистрированных в системе dll/ocx/exe-файлов. Для каждого объекта отображается время и дата регистрации и список всех вхождений (CLSID/ProgID). RegDllView также позволяет в ручном режиме установить или удалить все записи для выбранных dll/ocx.
- Для Windows 32-bit (51 КБ)
- Для Windows 64-bit (68 КБ)
13 января 2014 в 12:05 Автор: Alien
Как проверить зарегистрирована ли библиотека dll
Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007
Репутация: нет
Всего: 1
Как проверить, зарегистрирована ли dll в системе?
Let’s do some .NET
Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург
Репутация: 18
Всего: 67
vlsaf, могу подсказать как проверить, зарегистрирован ли тип в системе:
| Код |
| public static class Ole32 [DllImport(«ole32.dll»)] public static extern int CLSIDFromProgID([MarshalAs(UnmanagedType.LPWStr)] string lpszProgID, out Guid pclsid); > |
| Код |
| Guid guid; Ole32.CLSIDFromProgID(progId, out guid); |
ProgId в данном случае — имя типа.
СУВ,
Partizan.
Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007
Репутация: нет
Всего: 1
Dll регистрируют в системе обычно так
Вот нужно проверить, my.dll была зарегистрирована или нет.
Проверка регистрации типа тут может чем-то помочь?
Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008
Репутация: 5
Всего: 36
vlsaf,
Dll не регистрируют.
Регистрируют com-сервер
искать путь к dll в разделе CLSID\. \InprocServer32
Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007
Репутация: нет
Всего: 1
Partizan, оценил. Спасибо. Держи +1
Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008
Репутация: 5
Всего: 36
Partizan,
могу подсказать как проверить, зарегистрирован ли тип в системе:
p/invoke для этого не нужен, хватит возможностей обычного Type
Let’s do some .NET
Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург
Репутация: 18
Всего: 67
Rififi, жду примера
СУВ,
Partizan.
Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008
Репутация: 5
Всего: 36
Partizan,
Type.GetTypeFromProgID(«. «);
Let’s do some .NET
Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург
Репутация: 18
Всего: 67
Rififi, согласен.
СУВ,
Partizan.
- Что же такое .NET? Краткое описание,изучаем.
- Какой язык программирования выбрать? выбираем.
- C#. С чего начать? начинаем.
- Защита исходного кода .NET приложений, защищаем.
- Литература по .NET, обращаемся.
- FAQ раздела,ищем здесь.
- Архиполезные ссылки:www.connectionstrings.com, www.pinvoke.net, www.codeproject.com
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
[ Время генерации скрипта: 0.1267 ] [ Использовано запросов: 21 ] [ GZIP включён ]
REGSVR32 — регистрация или отмена регистрации библиотеки DLL в реестре Windows.
Модель многокомпонентных объектов ( C omponent O bject M odel — СОМ ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:
HKLM\SOFTWARE\Classes\CLSID — при регистрации COM-объектов библиотек для всех пользователей системы;
HKCU\SOFTWARE\Classes\CLSID — при регистрации COM-объектов библиотек только лишь для текущего пользователя;
HKLM\SOFTWARE\Wow6432Node\Classes\CLSID — для регистрации 32-битных DLL в 64-битных ОС Windows;
При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID . GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:
При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта. Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение. Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe , имеющейся во всех версиях операционных систем семейства Windows .
Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe :
— 64-разрядная версия в каталоге %systemroot%\System32 (обычно — C:\Windows\System32)
— 32-разрядная версия в каталоге %systemroot%\SysWoW64 (обычно – C:\Windows\SysWoW64)
Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).
При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:

Формат командной строки REGSVR32:
Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
/u — — вызывает DllUnInstall, отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;
/n — не вызывает DllRegisterServer; может использоваться с ключом /I;
/s – «тихий» режим; окна сообщений не отображаются;
Примеры использования regsvr32.exe :
regsvr32 /u «C:\Program Files\7-Zip\7-zip32.dll» — отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:

Для подавления вывода сообщения, используется параметр /s :
regsvr32 /u /s «C:\Program Files\7-Zip\7-zip.dll»
В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:
regsvr32 «C:\Program Files\7-Zip\7-zip.dll»
Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32 :
Или без использования переменных окружения:
В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe . Программа не требует установки в системе, имеет небольшой размер и позволяет:
— Получить в удобном виде список всех зарегистрированных в системе объектов.
— Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL.
— Выполнить регистрацию или отмену регистрации выбранных объектов.
— Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.
— Зарегистрировать или перерегистрировать указанный файл.

Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.