Регистрация mscal.ocx

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
const
Сообщения: 1
Зарегистрирован: 31 авг 2004, 09:53

Сделал word-шаблон в нем используется календарь 10 (mscal.ocx).
Использую Office Xp, Windows Xp.

Добавлял вот так

1. regsvr32.exe "C:\Program Files\Microsoft Office\Office10\mscal.ocx"
Создается раздел в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}

2. Редактор VB -> Tools -> References -> Browse -> mscal.ocx -> OK
Создается раздел в реестре
HKEY_CLASSES_ROOT\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}
3. Редактор VB -> Additional controls -> Календарь 10
Использую его в форме. Компилирую, все OK.

Перенес на другую машину с Office Xp, Windows Xp шаблон.
Зарегистрировал mscal.ocx. После открытия ругается на календарь.
Редактор VB -> Tools -> References [Microsoft Calendar Control 10.0 -> C:\Program Files\Microsoft Office\Office10\mscal.ocx]
Снимаю галку, и опять устанавливаю через Browse.
Создается раздел в реестре
HKEY_CLASSES_ROOT\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}
Компилирую, все OK.

Решил проблему копированием раздела при инсталляции
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}
в HKEY_CLASSES_ROOT\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}

Подскажите почему так, и как правильно зарегистрировать mscal.ocx?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

1. regsvr32.exe "C:\Program Files\Microsoft Office\Office10\mscal.ocx"
Создается раздел в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}

2. Редактор VB -> Tools -> References -> Browse -> mscal.ocx -> OK
Создается раздел в реестре
HKEY_CLASSES_ROOT\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}
Неверно.
разделы
HKEY_CLASSES_ROOT\CLSID\
и
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
синхронизированы. Пропробуйте добавить раздел в HKEY_CLASSES_ROOT\CLSID\ и вы его увидите в HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\. Затем удалите этот раздел из HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ и он исчезнет в HKEY_CLASSES_ROOT\CLSID\.

Точнее говоря они не синхронизированы а вообще ссылаются на одни и те же записи реестра.

Всегда достаточно только зарегистрировать библиотеку утилитой regsvr32.
и как правильно зарегистрировать mscal.ocx
ТОЛЬКО regsvr32!
Решил проблему копированием раздела при инсталляции
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}
в HKEY_CLASSES_ROOT\CLSID\{8E27C92B-1264-101C-8A2F-040224009C02}
Неверю. Это все равно что написать в программе на бейсике
Let X = X
Ошибок нет, но и пользы соответственно тоже никакой!

ПО СУЩЕСТВУ:
Я подозреваю, что после того как вы сделали
"Редактор VB -> Tools -> References -> Browse -> mscal.ocx -> OK"
и после этого СОХРАНИЛИ проект, он сразу стал переноссимым,
так как ссылка на используемые (подгружаемые) ActiveX-библиотеки
хранится в проекте.
Уверен, что именно это и решило проблему.
Ответить