Как подключиться к COM объекту и выполнить там код?
От: Багер  
Дата: 29.04.20 18:00
Оценка:
День добрый!

Создал проект WinForms и... не понял, облазил интернет, а где код подключения к COM объекту, чтобы в нём выполнить код — не нашёл...
Только создание COM объекта в поисковиках вылазит, а как в систему установленный COM объект использовать — ничего.
Можете помочь?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re: Как подключиться к COM объекту и выполнить там код?
От: Слава  
Дата: 29.04.20 18:09
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Создал проект WinForms и... не понял, облазил интернет, а где код подключения к COM объекту, чтобы в нём выполнить код — не нашёл...

Б>Только создание COM объекта в поисковиках вылазит, а как в систему установленный COM объект использовать — ничего.
Б>Можете помочь?

Напишите подробнее, что за объект. Вообще там ничего сложного нет, создаёте клиент, указывая имя класса и вызываете его методы.
Re[2]: Как подключиться к COM объекту и выполнить там код?
От: Багер  
Дата: 29.04.20 18:30
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, Багер, Вы писали:


Б>>Создал проект WinForms и... не понял, облазил интернет, а где код подключения к COM объекту, чтобы в нём выполнить код — не нашёл...

Б>>Только создание COM объекта в поисковиках вылазит, а как в систему установленный COM объект использовать — ничего.
Б>>Можете помочь?

С>Напишите подробнее, что за объект. Вообще там ничего сложного нет, создаёте клиент, указывая имя класса и вызываете его методы.


Так вот где примеры создания клиента, указания имя класса и вызова его методов? Не пойму — пустота какая-то. Только создание объектов встречается
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[3]: Как подключиться к COM объекту и выполнить там код?
От: bnk СССР http://unmanagedvisio.com/
Дата: 29.04.20 18:33
Оценка:
Здравствуйте, Багер, Вы писали:

Б>>>Можете помочь?


С>>Напишите подробнее, что за объект. Вообще там ничего сложного нет, создаёте клиент, указывая имя класса и вызываете его методы.


Б>Так вот где примеры создания клиента, указания имя класса и вызова его методов? Не пойму — пустота какая-то. Только создание объектов встречается


А сказать, что за объект-то, можно, или это секретная информация?
Большинство примеров — "объект" это приложение типа Excel, Autocad или 1С. Это ваш случай?

Что значит "установленный в систему объект" — не очень ясно

Какая-то установленная на компьютер (в Program Files) программа?
Какая-то системная DLL, которая предоставляет COM методы?
Запущенный сервис?
Запущенное другое приложение?
Отредактировано 29.04.2020 18:40 bnk . Предыдущая версия . Еще …
Отредактировано 29.04.2020 18:35 bnk . Предыдущая версия .
Re[4]: Как подключиться к COM объекту и выполнить там код?
От: Багер  
Дата: 29.04.20 18:41
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, Багер, Вы писали:


Б>>>>Можете помочь?


С>>>Напишите подробнее, что за объект. Вообще там ничего сложного нет, создаёте клиент, указывая имя класса и вызываете его методы.


Б>>Так вот где примеры создания клиента, указания имя класса и вызова его методов? Не пойму — пустота какая-то. Только создание объектов встречается


bnk>А сказать, что за объект-то, можно, или это секретная информация?

bnk>Большинство примеров — "объект" это приложение типа Excel, Autocad или 1С. Это ваш случай?

У меня вопрос "как подключить _любой_ объект", откуда мне знать, какой завтра потребуется. Зарегистрирован в системе как "FT2020.кучабуквоцифр". Что это даёт в направлении поиска мануала по VS2019+С#+WinForms?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[4]: Как подключиться к COM объекту и выполнить там код?
От: Багер  
Дата: 29.04.20 18:46
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, Багер, Вы писали:


Б>>>>Можете помочь?


С>>>Напишите подробнее, что за объект. Вообще там ничего сложного нет, создаёте клиент, указывая имя класса и вызываете его методы.


Б>>Так вот где примеры создания клиента, указания имя класса и вызова его методов? Не пойму — пустота какая-то. Только создание объектов встречается


bnk>А сказать, что за объект-то, можно, или это секретная информация?

bnk>Большинство примеров — "объект" это приложение типа Excel, Autocad или 1С. Это ваш случай?

bnk>Что значит "установленный в систему объект" — не очень ясно


bnk>Какая-то установленная на компьютер (в Program Files) программа?

bnk>Какая-то системная DLL, которая предоставляет COM методы?
bnk>Запущенный сервис?
bnk>Запущенное другое приложение?

Если как-то проще с "приложение типа Excel, Autocad или 1С" — мне без разницы, главное пример подключения к COM-объекту нужен, и пример вызова его метода.

Хоть с компьютера сони, хоть с леново — без разницы
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[5]: Как подключиться к COM объекту и выполнить там код?
От: bnk СССР http://unmanagedvisio.com/
Дата: 29.04.20 19:10
Оценка: 6 (1)
Здравствуйте, Багер, Вы писали:

Б>У меня вопрос "как подключить _любой_ объект", откуда мне знать, какой завтра потребуется. Зарегистрирован в системе как "FT2020.кучабуквоцифр". Что это даёт в направлении поиска мануала по VS2019+С#+WinForms?


Все же, что значит "зарегистрирован в системе" — имеется в виду, если такое имя в реестре, или он выполняется под этим именем?

Вообще любой COM-объект, который поддерживает automation, можно создать примерно так:

    var t = Type.GetTypeFromProgID("Excel.Application");  // здесь вместо этого идет твой "FT2020.кучабуквоцифр"
    dynamic app = Activator.CreateInstance(t);
    app.Visible = true; // вызываем что-нибудь
    app.Quit();


Если другой объект уже запущен, его можно получить так

    dynamic app = Marshal.GetActiveObject("Excel.Application"); // здесь вместо этого идет твой "FT2020.кучабуквоцифр"
    app.Visible = true;
    app.Quit();


Или я все еще не понял вопроса?
Re[6]: Как подключиться к COM объекту и выполнить там код?
От: Багер  
Дата: 29.04.20 21:06
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, Багер, Вы писали:


Б>>У меня вопрос "как подключить _любой_ объект", откуда мне знать, какой завтра потребуется. Зарегистрирован в системе как "FT2020.кучабуквоцифр". Что это даёт в направлении поиска мануала по VS2019+С#+WinForms?


bnk>Все же, что значит "зарегистрирован в системе" — имеется в виду, если такое имя в реестре, или он выполняется под этим именем?


bnk>Вообще любой COM-объект, который поддерживает automation, можно создать примерно так:


bnk>
bnk>    var t = Type.GetTypeFromProgID("Excel.Application");  // здесь вместо этого идет твой "FT2020.кучабуквоцифр"
bnk>    dynamic app = Activator.CreateInstance(t);
bnk>    app.Visible = true; // вызываем что-нибудь
bnk>    app.Quit();
bnk>


bnk>Если другой объект уже запущен, его можно получить так


bnk>
bnk>    dynamic app = Marshal.GetActiveObject("Excel.Application"); // здесь вместо этого идет твой "FT2020.кучабуквоцифр"
bnk>    app.Visible = true;
bnk>    app.Quit();
bnk>


bnk>Или я все еще не понял вопроса?


Да! Это оно! Спасибо большое! А то элементарная вещь, но поиск — он такой поиск)))
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re: Как подключиться к COM объекту и выполнить там код?
От: varenikAA  
Дата: 12.05.20 05:30
Оценка:
Здравствуйте, Багер, Вы писали:

Б>День добрый!


Б>Создал проект WinForms и... не понял, облазил интернет, а где код подключения к COM объекту, чтобы в нём выполнить код — не нашёл...

Б>Только создание COM объекта в поисковиках вылазит, а как в систему установленный COM объект использовать — ничего.
Б>Можете помочь?

В Visual Studio достаточно добавить в проект ссылку на нужный COM объект при этом в проекте будет сгенерирована заглушка-прокси(при сборке появится дополнительная dll)
она покажет все доступные методы, другой способ уже предложили, называется динамическое связывание.
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.