Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: CL | DM;

Вниз

Программная регистрация .OCX компонентов.   Найти похожие ветки 

 
-=Spike=-   (2002-08-15 18:58) [0]

Как программно зарегистрировать/снять регистрацию компонентов (*.ocx), Active DLL. Так, как это делает regsvr32.exe.

Нужен пример!!!


 
-=Spike=-   (2002-08-15 19:38) [1]

И Вы называете себя Мастерами? Хм...


 
Ученик ©   (2002-08-15 21:39) [2]

Delphi6\Demos\ActiveX\TRegSvr


 
TTCustomDelphiMaster ©   (2002-08-15 21:56) [3]

Вызываешь из *.ocx функции DLLRegisterServer/DLLUnRegisterServer


 
-=Spike=-   (2002-08-15 22:06) [4]

Ну, хорошо, хорошо... Не злитесь.

С 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 22:13) [5]

А чему равен результат RegFunc?


 
-=Spike=-   (2002-08-15 22:27) [6]

Result := RegFunc = S_OK

А что?


 
Romkin ©   (2002-08-15 22:43) [7]

НАйди в реестре ключ название - ClassID (Guid кокласса) и удали все ветки


 
-=Spike=-   (2002-08-15 22:44) [8]


> НАйди в реестре ключ название - ClassID (Guid кокласса)
> и удали все ветки


Гениально, что ещё??? (для тех, кто в танке - сие написано с иронией).


 
TTCustomDelphiMaster ©   (2002-08-15 22:52) [9]

-=Spike=- (15.08.02 22:27)
Не понял. RegFunc возвращает S_OK или что-то другое.

PS: У меня Дэльфя сломалась :(
Так что на сегодня все.


 
Romkin ©   (2002-08-15 22:52) [10]

Тебе надо удалить регистрацию или ассоциации с расширением?


 
-=Spike=-   (2002-08-15 23:02) [11]


> Не понял. RegFunc возвращает S_OK или что-то другое.


Так у меня тоже под рукой Делфи нет.
Я сейчас за рабочей машиной...

Но припоминаю, что ошибочка была при попытке снять регистрацию с файла...


 
Suntechnic ©   (2002-08-16 08:22) [12]

Вообще странное дело. Странно то, что у вас с DllUnregisterServer не получается. Вы наверное будете удивлены, но знаете что делает regsvr32 /u file_name? Эта утилита выполняет код, который вы привели. Она загружает библиотеку через LoadLibrary и вызывает DllUnregisterServer, больше ничего... поэтому странно, что с помощью утилиты у вас выходит, а "в ручную" нет


 
-=Spike=-   (2002-08-16 08:34) [13]

Да мне и самому это кажеться странным, но клянусь святым Дунстаном (это из Робин Гуда) так оно и есть!

Регистрация проходит без проблем, а снятие... Главное, что другие Active Х компоненты нормально DllUnregisterServer с помощью данной функции, а эта библиотека не хочет.


 
Romkin ©   (2002-08-16 11:46) [14]

Значит, скорее всего эта функция в данной библиотеке ничего не делает :-))
Просто ее не реализовали



Страницы: 1 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
3-84873
SuperVK
2002-08-05 09:00
2002.08.26
TStringField.EditMask - сохранение части шаблона ввода в базе


1-84987
Explorer
2002-08-15 12:41
2002.08.26
Подскажите, где я ошибся?


14-85257
Agent Smith
2002-07-31 19:49
2002.08.26
Athlon XP 1800 + Vulcan 6Cu - ЖАРА!!!


8-85135
annton
2002-04-20 00:49
2002.08.26
Глюк TImage


1-85021
NikolayFirst
2002-08-16 12:02
2002.08.26
BDE Administrator