Вопрос

Можно ли использовать ocx (элемент управления ActiveX) в winform (возможно, добавляя его программно) без предварительной регистрации ocx в regsrv32?

Я пытаюсь включить установку xcopy. У меня был " AxInterop. .dll " и " Interop. .dll " файл, сгенерированный с моего компьютера разработчика.

Я видел возможность вызова COM-библиотеки DLL без предварительной регистрации (

Это было полезно?

Решение

Да, это можно сделать. Вы должны предполагать, что ваше приложение будет развернуто только в Windows XP (или Windows Server 2003) или более поздней версии, и тогда вы можете использовать так называемый COM без регистрации, чтобы это произошло.

По сути, вы создаете файл манифеста для управляющей DLL ActiveX, чтобы загрузчик Windows & amp; COM DLL знают, что такое регистрация, без необходимости вносить это в реестр.

Краткое описание того, что нужно сделать, находится в этой статье на MSDN: Активация COM-компонентов без регистрации: пошаговое руководство

" Шаг 6 " и "Шаг 7" в этой статье содержится все , что вам нужно.

Я только что опробовал это на одной из моих собственных программ на C #, которая использует элемент управления сеткой Microsoft ActiveX (старый " MS Flex Grid "), и он работает просто отлично. Убедитесь, что вы создали файл манифеста как для своего приложения, так и для COM DLL, и подставили соответствующие GUID в нужных местах. Возможно, вам понадобится использовать OLEVIEW, чтобы найти правильные идентификаторы для использования из библиотеки ActiveX DLL, если у вас их нет под рукой.

Другие советы

Имейте в виду, что использование COM-компонентов без реестра для COM-компонентов, созданных в .NET, может случайно привести к сбоям в Windows XP!

Ссылки: Вопрос Stackoverflow где Я узнал об этом из статьи базы знаний Microsoft, упомянутой в этом вопросе. Есть исправление, но вы не можете распространять его.

В Visual Studio это даже намного проще: просто зайдите в References, найдите позиции, созданные вашим ocx (должно быть 2, AxSomething и Something) и установите для них обоих Isolated: true в их свойствах. Нет манифестов, нет кода. Теперь вы должны распространять ваш exe-файл с dll-файлом, содержащим ocx. На вашем разработчике ocx можно зарегистрировать.

После 10 часов поиска того, как запустить приложение VB6 с OCX на Win7 без регистрации его и прав администратора, я нашел здесь несколько решений для щелчков: http://mmm4vb6.atom5.com/yes-update-0-12-5479.html#c

Необходимо проверить Embed Manifest, чтобы он работал. Работает как шарм!

Я размещаю здесь решение, потому что я также нашел этот вопрос здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top