Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75

Как получить WindowsForms (.NET) через ActiveX

30.11.2015, 10:50. Показов 1514. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть приложение, которое может использовать ActiveX элементы(контролы). Например можно использовать Windows Form 2.0
Функционал элементов Windows Form 2.0 довольно слабоват и хотелось бы использовать элементы которые есть в WindowsForms .NET (например DataGridView)

Есть ли уже готовые решения для такой задачи? Возможно ли такое решение впринципе?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2015, 10:50
Ответы с готовыми решениями:

PascalABC.NET, WindowsForms и MediaElement.MediaEnded:RoutedEvent
Доброго времени суток. Есть форма Form1 (System.Windows.Forms), процедура Form1.OnVideoEnd и переменная v:MediaElement: {$reference...

Как получить внешние параметры в ActiveX?
День добрый всем! Есть у меня Activex-компонент. Он должен связываться с сервером и открывать указанный ему файл. Имя файла задаётся...

Как получить доступ к ADOConnection из другой формы в ActiveX-форме
Есть приложение ActiveX, для которого я хочу сделать подчиненную форму. #Скажу сразу - в ActiveX я не нашел возможности создать именно...

12
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
30.11.2015, 12:56
Цитата Сообщение от Shoorup_SCBist Посмотреть сообщение
Возможно ли такое решение впринципе?
если "WindowsForms .NET " предоставляет эти элементы в виде ActiveX, то очевидно такое решение есть

Добавлено через 1 минуту
...как вариант - создать в "WindowsForms .NET " обложку которая будет предоставлять нужные вам элементы в виде ActiveX
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
30.11.2015, 13:15  [ТС]
отрывочные сведения я нашел на просторах, но что-то везде о многом и ни о чем...
Есть .NET bridge похожий на то, что мне надо, но заточенное под определенное приложение, да еще и платное...
Мне бы примерчик как вытянуть из .NET хотя-бы Label со всеми свойствами, событиями и методами, оформив это все в ActiveX.
Из того, что я начитал на просторах, задачка не такая уж и тривиальная...
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
30.11.2015, 14:25
Цитата Сообщение от Shoorup_SCBist Посмотреть сообщение
задачка не такая уж и тривиальная.
я не работал с .NET но чисто теоретически вердикт такой: если создатели среды разработки не подразумевали использование своих Label через ActiveX, то получить их в свое рабство вы сможете исключительно путем написания обертки над ними
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
03.12.2015, 16:47
Исходя их исходников, видно что WinForms контролы реализуют те или иные интерфейсы, например class Button реализует некий interface IButtonControl, правда там всего три метода и нельзя забиндить к клику функцию, так что сомнительное удовольствие. Теоретически любой WinForms контрол можно добавить в своё приложение, так как базовый class Control реализует interface IWin32Window со свойством Handle
C#
1
2
3
4
5
6
7
8
9
10
[System.Runtime.InteropServices.Guid("458AB8A2-A1EA-4d7b-8EBE-DEE5D3D9442C"), System.Runtime.InteropServices.InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
    [System.Runtime.InteropServices.ComVisible(true)]
    public interface IWin32Window {
    
        /// <include file='doc\IWin32window.uex' path='docs/doc[@for="IWin32Window.Handle"]/*' />
        /// <devdoc>
        ///    <para>Gets the handle to the window represented by the implementor.</para>
        /// </devdoc>
        IntPtr Handle { get; }
    }
Добавлено через 2 часа 58 минут
Плохо знаком с шарпом, а именно с атрибутами, но как я понял из найденных примеров создания COM компонентов в C#, у классов WinForms как минимум нет атрибута с GUID [Guid("/* GUID */")] и интерфесом-источником [ComSourceInterfaces(typeof(/*интерфейс*/))].
Возможно, получить компоненты WinForms всё же как-то можно. Но и в этом случае нужно как минимум знать CLSID самого компонента или фабрики.
1
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
04.12.2015, 09:14  [ТС]
На данный момент у меня не получилось создать или найти (рабочий) пример создания ActiveX контрола. COM создать получилось, все красиво и прекрасно, а так что бы визуальный контрол...
Прошу помочь в решении простого контрола который хотябы Label отрисует
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
04.12.2015, 09:56
Цитата Сообщение от Operok Посмотреть сообщение
у классов WinForms как минимум нет атрибута с GUID
я так думаю что дело в том что interface != интерфейс COM
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
04.12.2015, 10:07  [ТС]
не могу понять как сборку зарегистрировать так чтобы это не COM объект был а ActiveX...
Взял вот этотпримерчик... но как-то опять все и ни о чем...
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
04.12.2015, 11:04
Цитата Сообщение от vxg Посмотреть сообщение
я так думаю что дело в том что interface != интерфейс COM
Подобное даже и не смел подумать. Я к тому, что скорее всего, регистрация ком компонента происходит через атрибуты, примеры регистрации COM компонента в .NET в инете есть. Этих атрибутов у классов WinForms я не наблюдаю.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
04.12.2015, 12:37
Цитата Сообщение от Operok Посмотреть сообщение
примеры регистрации COM компонента в .NET в инете есть
а в этих примерах вы видели слово interface ?
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
04.12.2015, 12:53
Цитата Сообщение от vxg Посмотреть сообщение
а в этих примерах вы видели слово interface ?
Да
Оно (слово) всего лишь обозначает полностью абстрактный класс, что вы к нему так привязались?
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
04.12.2015, 15:25
Цитата Сообщение от Operok Посмотреть сообщение
что вы к нему так привязались?
я лишь хочу сказать, что, к примеру, если я на C++ определяю чистый абстрактный класс вида
C++
1
2
3
4
5
class IMyObject
{
public:
    virtual int GetX(/* [out] */ int *x) = 0;
};
это не совсем то же самое что
C++
1
2
3
4
5
6
class IMyObject:
    public IDispatch
{
public:
    virtual HRESULT __stdcall GetX(/* [out] */ int *x) = 0;
};
Добавлено через 55 секунд
...то есть абстрактность не превращает класс в объект COM предоставляющий интерфейс своему окружению
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
10.12.2015, 08:22  [ТС]
UP!
Вопрос все еще висит... Можно ли на C# написать визуальный ActiveX компонент?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2015, 08:22
Помогаю со студенческими работами здесь

Через VK.NET получить все фотографии пользователя
Приветствую, форумчане! Пытаюсь через VK.NET получить все фотографии пользователя, но не могу сообразить в чем ошибка. ...

Использование IE как ActiveX через СWebBrowser2 MFC класс
Доброго времени суток всем. Есть приложение, построенное вокруг класса СWebBrowser2 из MFC, то есть CustomBrowser. Все замечательно...

Как получить доступ к ActiveX серверу на С++, если есть образец на Visual Basic - C++ Builder
Раньше я пользовался Stereoscopic player http://3dtv.at/Downloads/Index_en.aspx , где разработчики этого плеера предоставляли доступ к...

ActiveX Bridje или как превращать ActiveX Control в JavaBean.
Насколько я понял из документации, эта штука позволяет превращать JavaBean в ActiveX Control с дальнейшим использованием этого дела в...

Внедрение кода в метод через WindowsForms и его выполнение
Есть ли какие нибудь методы?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru