Как программно зарегистрировать DLL?

Гоша 23.03.2004 - 11:49 | Подскажите, плиз 1. Как программно зарегистрировать DLL(то что делает regsvr32)? 2. Как программно определить не зарегистрирован ли уже DLL? --- долго искал по факам, но не нашел
Delphist 1 - 23.03.2004 - 11:56 | Сделай bat-файл типа regsvr32 name.dll И вызывай его через WinExec или CreateProcess . По идее, повторная регистрация модуля не должна выдавать exception
LF 2 - 23.03.2004 - 12:19 | 1) regsvr32 умеет делать тихую регистрацию через кажется ключ /c 2) смотри по progid
UE 3 - 23.03.2004 - 12:22 | 1. Получаешь адрес экспортируемой DllRegisterServer и вызываешь ее... 2. Исследование реестра тебе поможет ;)
ScrewDriver 4 - 23.03.2004 - 13:40 | 1. WinExec или CreateProcess, запускаешь regsvr32 ключом /s ("тихая" регистрация) или в Дельфи мона - RegisterComServer(NameLibrary) 2. Копай в реестре.
Гоша 5 - 23.03.2004 - 13:49 | to 2: по progid это как? to 3, 4: в реестре имени DLL не нашел
VaS 6 - 23.03.2004 - 13:53 | А возьми пример TRegSrv из поставки Делфи, начиная (кажется) с версии 4 и посмотри исходник. Представляет собой полный аналог regsrv32 + может регистрировать библиотеки типов.
Гоша 7 - 23.03.2004 - 14:41 | VaS, спасибо за TRegSrv, работает. А вот что делать со 2-ым пунктом - как определить зарегистрирован ли уже DLL? В реестре, как я уже писал, DLL-ки нет.
UE 8 - 23.03.2004 - 14:51 | Как это в реестре нет? Или плохо искал или регистрация не прошла... или она какая-то настандартная :)
Delphist 9 - 23.03.2004 - 15:00 | Будет она в реестре, будет. Иначе откуда Windows о ней узнает? INI-файлы давно уже не в моде.
Kostyan 10 - 23.03.2004 - 15:42 | Регистрация HMODULE hLib = LoadLibrary("MyLib.dll") typedef HRESULT (__stdcall *LPDllRegisterServer)(); LPDllRegisterServer lpf = (LPDllRegisterServer)GetProcAddress("DllRegisterServer"); if(lpf) (lpf)(); FreeLibrary(hLib)
Гоша 11 - 23.03.2004 - 16:20 | Возможно, нестандартная. Искал тыщу раз - нету. Регистрю другую DLL - есть, этой нет.
UE 12 - 23.03.2004 - 17:31 | 2Гоша, погляди regmon'ом, что она там эта dll-ка с реестрои творит...

>>