Использовать OCX без регистрации
можно ли использовать ocx (элемент управления ActiveX) на winform (возможно, добавляя его программно) без предварительной регистрации ocx в regsrv32?
то, что я пытаюсь достичь, - это включить установку xcopy. У меня был "AxInterop"..dll " и " взаимодействие..dll " файл, сгенерированный с моей машины dev.
Я видел возможность вызова com dll без предварительной регистрации (ProSysLib, по словам автора, но я еще не протестировали), так как ocx также основан на COM, поэтому я предполагаю, что должен быть какой-то способ сделать это.
4 ответов
Да, это можно сделать. Вы должны предположить, что ваше приложение будет развернуто только в Windows XP (или Windows Server 2003) или более поздней версии, а затем вы можете использовать то, что называется "регистрация бесплатно COM", чтобы это произошло.
по сути, вы создаете файл манифеста для библиотеки DLL ActiveX, чтобы загрузчик Windows и COM DLL знали, что такое его регистрация, без необходимости помещать это в реестр.
пошаговое руководство о том, что делать, находится в этой статье В MSDN: Регистрация-бесплатная активация com-компонентов: Пошаговое Руководство
" Шаг 6 "и" Шаг 7 " в этой статье содержат все вам понадобится.
Я только что попробовал это на одной из моих собственных программ C#, которая использует элемент управления Microsoft ActiveX grid (старый "MS Flex Grid"), и он работает просто отлично. Убедитесь, что вы создали файл манифеста как для приложения, так и для библиотеки DLL COM и заменили соответствующие GUID в нужных местах. Вы можете нужно использовать OLEVIEW, чтобы выкопать правильные идентификаторы для использования из библиотеки ActiveX DLL, если у вас их нет под рукой.
будьте предупреждены, что, по-видимому, использование реестра без COM для COM-компонентов, созданных в .NET, может случайно вызвать сбои в Windows XP!
ссылки: Stackoverflow вопрос где я узнал это, Microsoft knowledgebase статьи упоминается в этом вопросе. Существует исправление, но вы не можете распространять его.
Это даже намного проще в Visual Studio: просто перейдите к ссылкам, найдите позиции, созданные вашим ocx (должно быть 2, AxSomething и что-то) и установите для них обоих изолированные: true в их свойствах. Нет manifestes, без кода. Теперь вы должны распространять свой exe с dll файл, содержащий ocx. На вашей машине разработки ocx может быть зарегистрирован.
после 10 часов поиска, как запустить приложение VB6 с OCX на Win7 без регистрации и прав администратора, я нашел несколько решений нажмите здесь:http://mmm4vb6.atom5.com/yes-update-0-12-5479.html#c
нужно проверить embed Manifest, чтобы заставить его работать. Работает как шарм !
Я размещаю решение здесь, потому что я также нашел этот вопрос здесь.