Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Вниз

Программная регистрация .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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-84946
Nikson
2002-08-15 12:09
2002.08.26
Изменение кода класса ТStringGrid


1-85112
VSD
2002-08-15 06:00
2002.08.26
Автопозиционирование компонента (например Panel) по центру


8-85132
ec
2002-04-16 16:51
2002.08.26
Вопрос по PaintBox y


4-85295
Керик
2002-06-21 05:36
2002.08.26
Как узнать количество потоков и Base Priority


1-85059
Bart
2002-08-14 13:34
2002.08.26
Реестр в 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский