Re: Повышение прав приложения при работе под Windows 7 и работа OCX без регистрации | |
---|---|
Sega Сообщений: 511 Откуда: Ярославль Дата регистрации: 27.12.2000 |
В своей программе используется ActiveX RichTextControl. Столкнулся с проблемой того, что у пользователей не зарегистрирован в системе класс richtx32.ocx и нет прав, чтобы его зарегистрировать.
Настала нужда поднять и осилить эту тему. Решил воспользоваться технологией Reg-Free COM. Что сделал: 1. При помощи примера кода из статьи вытащил из своего TEST.EXE файл манифеста 2. Дополнил его строками COM-класса. Получился вот такой файл:
3. Засунул файл манифеста в проект и пересобрал свой TEST.EXE 4. При помощи того же кода (п.1) проверил и убедился, что выдается правильная информация о файле манифеста 5. Разрегистрировал файл richtx32.ocx в системе и просто положил файл в ту же папку, что и TEST.EXE Не работает. На той форме, где вызывается RichTextbox программа выдает ошибку и говорит, что контрол не найден. Что я делаю не так? |
Re: Повышение прав приложения при работе под Windows 7 и работа OCX без регистрации | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
У меня студия для изоляции richtext контрола генерит вот такой манифест:
Возможно что некоторые узлы и не нужны фоксу - там уже вплоть до v3 пространства имён используются Коренное отличие от твоего манифеста - наличие узла typelib (хз нужен он или нет), но что ещё более важно, clsid - у тебя прописан guid библиотеки, а не самого ком-класса! Тройка перед первым слэшем а не нолик, как у меня прописалось. ------------------ WBR, Igor |
Re: Повышение прав приложения при работе под Windows 7 и работа OCX без регистрации | |
---|---|
Sega Сообщений: 511 Откуда: Ярославль Дата регистрации: 27.12.2000 |
Игорь, спасибо. Всё получилось.
Действительно, прописал по ошибке идентификатор библиотеки, а не самого класса. В своем файле манифеста просто исправил 3 -> 0 Остальная лабуда не пригодилась. Другие ActiveX сделал по аналогии. За подсказку большой респект. Теперь осталась проблема только с регистрацией запуска из программы файла помощи. Т.е. команды regsvr32 FoxhHelpps9.dll FoxhHelp9.exe /regserver хочется тоже изолировать. по FoxhHelp9.exe в реестре информацию нашел. Получилось так:
В манифест добавил, но справка не запускается. по FoxhHelpps9.dll нашел только CLSID {B9505A00-6AAC-11D1-8632-00A0C903A97F} Тут в какую сторону копать? |
Re: Повышение прав приложения при работе под Windows 7 и работа OCX без регистрации | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Увы, про хелп не знаю. Просто контекстного хелпа я не мастерил (того что по What's this кнопке активируется - все эти фоксовые свойства WhatsThis* да и просто HelpContextID), а "обычный" chm без проблем запускается тривиальным ShellExecute или утилитой hh.exe (там можно даже параметрами не только файл но и раздел внутри chm указать). Вполне можно прописать запуск в меню и поставить этому пункту штатный хоткей F1.
Т.е. я просто не вижу потребности в данной вспомогательной штуке Кстати, на некоторых версиях ОС не работает chm "из коробки" - нужно дополнительные компоненты устанавливать чтобы его смотреть. Ну и тоже старая проблема с запуском chm расположенного на сетевом ресурсе - тоже не работает по умолчанию (хотя можно в безопасности IE что-то подкрутить)... В принципе сейчас можно и в других форматах хелп презентовать - от pdf/doc до просто набора html-ей, или тупо веб-ссылки (на онлайн версию хелпа - если есть свой сайт, и если продукт достаточно динамично развивается, т.е. хелп часто обновляется - там же удобно и обратную связь с разрабом сделать - от простейшего микро-форума, до полноценного доступа к хелпдеску/багтрекингу). ------------------ WBR, Igor |
© 2000-2024 Fox Club  |