список зарегистрированных в системе дллов?
Помогите с помощью VBScript'a вытащить список зарегистрированных в системе дллов.
Спасибо.
А вам зачем?:)
пишеш
regsvr32 dll_name.dll
и дллка регистрируется в ОС.
Так вот, как получить весь список?
а надо для следующего:
есть файл со списком дллов.
1. regsvr32 /u ***.dll
2. проверить все ли ушли.
3. regsvr32 ***.dll
так вот. второй пункт :(
ответ команды regsvr32 не подходит
(доверяй, но проверяй)
Так это вам зарегистрированные COM-интерфейсы нужны. Это перебором. По HKCR\CLSID. Хотя ничто не помешает некоей абстрактной Dll-ке в Dll(Un)RegisterServer делать все что заблагорассудится и регистрироваться совсем не там, но это так, мелочи
Не буду врать,но где-то у меня вроде был пример,который эти DLL перечислял
Хотите все COM-интерфейсы в системе посбивать,чтоб ни одна программа не работала?;)
затем заменить их на новые и вновь зарегистрировать.
@pixo $oft Был бы признателен за кодик
P.S.Насчёт кода:я немного ошибся(память подвела)–этот код перечисляет элементы по ClsId,и то не все,а только те,в которых есть OLE DB provider.Впрочем,этот код легко можно адаптировать под свои нужды
Небольшая проблема–он находится в книге,и он немаленький.Я не совсем щедр на время,чтобы его ещё и набрать:)
Книга Стивена Романа "Visual basic.Библиотека Win32 API"
Цитата:
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
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