![]() |
|
Модераторы: MetalFan |
![]()
|
|
| Barvetal |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: нет Всего: 5 |
Всем привет!
Есть локальный СОМ-сервер (в ехе-файле). Он используется в нескольких приложениях. В инсталлере этих приложений я хочу регистрировать этот сервер, в деинсталлере — разрегистрировать, но только тогда, когда он уже больше никем не используется. Как это сделать? Обьясню на примере. Пусть есть мои приложения prog1 и prog2. Есть СОМ-сервер MySrv.exe. В инсталлере prog1 я вызываю комманду MySrv.exe /regserver. И в инсталлере prog2 я делаю то же самое. Теперь, если я буду деинсталлировать prog2, то в его деинсталлере вызовется MySrv.exe /unregserver, СОМ-сервер окажется разрегистрированным, и из установленного приложения prog1 я не смогу работать с этим сервером. Я почему-то думал, что если я регистрирую СОМ-сервер несколько раз, то я должен столько же раз вызвать и его дерегистрацию для реальной дерегистрации СОМ-сервера. А оказалось, сколько бы я не регистрировал сервер, одной дерегистрации достаточно Скажите, как можно побороть эту проблему, и сделать дерегистрацию в деинсталлере только в случае, если больше уже никто этот СОМ-сервер не использует? Всем заранее спасибо! |
|||
|
||||
| МихаилК |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.10.2005 Репутация: нет Всего: нет |
В инсталяторах prog1 и prog2 инкрементировать какую-нибудь общую переменную, хранящуюся в реестре. В деинсталяторе соответственно делаем ей декремент и если ее значение = 0, то разрегистрируем сервер.
|
|||
|
||||
| Barvetal |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: нет Всего: 5 |
Я вот как сделал. У меня инсталлер когда инсталлирует этот СОМ-сервер, то в SharedDLL's он прописывает путь к этому серверу, и каждый раз увеличивает счетчик установок на единицу. При деинсталляции смотрю, если для этого пути значение счетчика меньше двух, или вобще нет, то дерегистрирую сервер...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |