powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RegisterComServer обратно
10 сообщений из 10, страница 1 из 1
RegisterComServer обратно
    #39624586
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как удалить регистрацию, выполненную ранее через RegisterComServer?
Только через regsvr32 /u?

DLL из состава стороннего ПО.
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624600
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luigi,

Это самый штатный способ.
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624614
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luigi,
Можешь реестр почистить если не устраивает нормальный способ.
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624642
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял, спасибо.
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624671
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно еще попробовать загрузить эту dll, через GetProcAdrress получить функцию DllUnregisterServer и вызвать ее напрямую, не забывая вызвать OleInitialize/OleUninitialize. Это эквивалентно вызову regsvr32 /u
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624880
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luigi,

Так как жедаевские либы ставить всем традиционно лень. Хотя это, обычно, несколько кликов, то скопирую кусок из них:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
// UnregisterServer by Ralf Kaiser patterned on RegisterServer
function UnregisterServer(const ModuleName: string): Boolean;
type
  TCOMFunc = function: HRESULT;
const
  S_OK = $00000000;
var
  Handle: THandle;
  DllUnRegServ: TCOMFunc;
  DllCanUnloadNow: TCOMFunc;
begin
  Handle := LoadDLL(ModuleName);
  try
    DllUnRegServ := GetProcAddress(Handle, 'DllUnregisterServer');
    DllCanUnloadNow := GetProcAddress(Handle, 'DllCanUnloadNow');
    Result := Assigned(DllCanUnloadNow) and (DllCanUnloadNow() = S_OK) and
      Assigned(DllUnRegServ) and (DllUnRegServ() = S_OK);
  finally
    FreeLibrary(Handle);
  end;
end;
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624907
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon
Код: pascal
1.
Handle := LoadDLL(ModuleName);

Нет проверки возвращаемого значения
makhaon
Код: pascal
1.
2.
    DllCanUnloadNow := GetProcAddress(Handle, 'DllCanUnloadNow');
    Result := Assigned(DllCanUnloadNow) and (DllCanUnloadNow() = S_OK) and

Зачем?
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624924
Aniskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DllCanUnloadNow может и отсутствовать в экспорте. В любом случае ее вызов бессмыслен. И для приличия добавить stdcall в TCOMFunc.
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39624939
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nobody's perfect.

Но, господа, всё в ваших руках :)

https://github.com/project-jedi/jvcl/blob/master/jvcl/run/JvJCLUtils.pas
...
Рейтинг: 0 / 0
RegisterComServer обратно
    #39625230
luigi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал так, как написал Aniskin.
Позаимствовал код из стандартного ComObj & ComServ.
Работает.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RegisterComServer обратно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]