![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программная регистрация .OCX компонентов.
-=Spike=- © (2002-08-15 18:58:00)Как программно зарегистрировать/снять регистрацию компонентов (*.ocx), Active DLL. Так, как это делает regsvr32.exe.
Нужен пример!!!
Romkin (2002-08-16 11:46:00) [1]Значит, скорее всего эта функция в данной библиотеке ничего не делает :-))
Просто ее не реализовали
-=Spike=- (2002-08-16 08:34:00) [2]Да мне и самому это кажеться странным, но клянусь святым Дунстаном (это из Робин Гуда) так оно и есть!
Регистрация проходит без проблем, а снятие... Главное, что другие Active Х компоненты нормально DllUnregisterServer с помощью данной функции, а эта библиотека не хочет.
Suntechnic (2002-08-16 08:22:00) [3]Вообще странное дело. Странно то, что у вас с DllUnregisterServer не получается. Вы наверное будете удивлены, но знаете что делает
regsvr32 /u file_name? Эта утилита выполняет код, который вы привели. Она загружает библиотеку через LoadLibrary и вызывает DllUnregisterServer, больше ничего... поэтому странно, что с помощью утилиты у вас выходит, а "в ручную" нет
-=Spike=- (2002-08-15 23:02:00) [4]
> Не понял. RegFunc возвращает S_OK или что-то другое.
Так у меня тоже под рукой Делфи нет.
Я сейчас за рабочей машиной...
Но припоминаю, что ошибочка была при попытке снять регистрацию с файла...
TTCustomDelphiMaster (2002-08-15 22:52:00) [5]-=Spike=- (15.08.02 22:27)
Не понял. RegFunc возвращает S_OK или что-то другое.
PS: У меня Дэльфя сломалась :(
Так что на сегодня все.
Romkin (2002-08-15 22:52:00) [6]Тебе надо удалить регистрацию или ассоциации с расширением?
-=Spike=- (2002-08-15 22:44:00) [7]
> НАйди в реестре ключ название - ClassID (Guid кокласса)
> и удали все ветки
Гениально, что ещё???(для тех, кто в танке - сие написано с иронией).
Romkin (2002-08-15 22:43:00) [8]НАйди в реестре ключ название - ClassID (Guid кокласса) и удали все ветки
-=Spike=- (2002-08-15 22:27:00) [9]
Result := RegFunc = S_OK
А что?
TTCustomDelphiMaster (2002-08-15 22:13:00) [10]А чему равен результат RegFunc?
-=Spike=- (2002-08-15 22:06:00) [11]Ну, хорошо, хорошо... Не злитесь.
С DLLRegisterServerвсё ясно, а вот с DLLUnRegisterServerне очень. Я пытаюсь снять регистрацию с библиотеки, которая отвечает за работы Проводника с ZIP файлами (WindXP), но ничего не выходит, а стандартным regsvr32.exe получаеться:
function UnRegisterOCX(FileName: string): Boolean;
var
OCXHand: THandle;
RegFunc: TDllRegisterServer;
begin
OCXHand := LoadLibrary(PChar(FileName));
RegFunc := GetProcAddress(OCXHand, "DllUnregisterServer");
if @RegFunc <> nil then
Result := RegFunc = S_OK
else
Result := False;
FreeLibrary(OCXHand);
end;
Жду Ваших советов. Только не нужно предлагать воспользоваться:
WinExec(PChar("regsvr32 /u custom.ocx"), SW_HIDE);
Это не профессианально!
TTCustomDelphiMaster (2002-08-15 21:56:00) [12]Вызываешь из *.ocx функции DLLRegisterServer/DLLUnRegisterServer
Ученик (2002-08-15 21:39:00) [13]Delphi6\Demos\ActiveX\TRegSvr
-=Spike=- (2002-08-15 19:38:00) [14]И Вы называете себя Мастерами? Хм...