@alexbbfg

Как из своей программы управлять другой програмой?

Есть программа, написанная на c#. Я знаю некоторые ее методы и хочу написать свою программу, тоже на c#, что бы из нее совершать действия во внешней программе. Я подключаю ее библиотеки и Visual Studio нормально видит ее методы и классы. Но как мне подключиться к этой внешней программе, чтобы методы работали. Если я просто по нажатии кнопки в своей программе пытаюсь вызвать метод этой внешней программы, то выдает ошибку "Дополнительные сведения: Инициализатор типа "" выдал исключение."
Буду рад любой помощи, а если и пример кода будет, то совсем супер.

Спасибо, всем огромное, кто откликнулся на мою "боль"!
Я программист - самоучка, без какой-либо теоритической подготовки. Формулирую задачу и гуглю решение. А тут все "как открыть внешнюю программу", "как закрыть внешнюю программу", "как получить список запущенных процессов". Не знал как правильно сформулировать, вот и вы просите уточнить.

Не знаю как точнее. Просто есть программа, у которой например есть класс, а в нем метод, который например рисует фигур на форме по координатам, типа

ВнешняяПрограмма.КлассВнешнейПрограммы.РисоватьФигуру(x, y)

Я хочу написать свою программу, которая брала бы данные из ВнешнейПрограммы, обрабатывала бы их, а потом, например, по нажатию кнопки на моей форме вызывался бы метод ВнешнейПрограммы

ВнешняяПрограмма.КлассВнешнейПрограммы.РисоватьФигуру(x, y)

и на форме ВнешнейПрограммы, рисовалась бы фигура.

Идея такая. Не знаю, возможно ли такое вообще, я почему-то думаю, что должны быть классы по подключению к этой ВнешнейПрограмме, ну и работать потом с ней.

Если есть идеи, буду очень рад помощи, в том числе и по направлениям куда гуглить. Пока почитаю про ремотинг и управление СОМ-объектами. Считывать память - это наверное очень круто))
  • Вопрос задан
  • 2854 просмотра
Решения вопроса 1
Задайте вопрос более точно.
Вам нужно межпроцессное взаимодействие или подключить другую сборку к проекту, можете ли вы изменять "другую программу" или нет?

Почитайте про Windows Communication Foundation.
Операции с каналами в .NET Framework
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
newross
@newross
Product owner
Очень много вариантов, от управления через COM-объекты, заканчивая копированием и разбором памяти другой программы.
Конкретизируйте, с работаете, какие технологии используете?
Ответ написан
Комментировать
@bmforce
Если вам надо управлять приложением с графическим интерфейсом, то можете посмотреть сюда:
https://github.com/TestStack/White
Ответ написан
vpuhoff
@vpuhoff
Программист в свободное от работы время
То что вы описали в .net называется Remoting. Примеров в сети много.
Ответ написан
Комментировать
@alexbbfg Автор вопроса
Спасибо, всем огромное, кто откликнулся на мою "боль"!
Я программист - самоучка, без какой-либо теоритической подготовки. Формулирую задачу и гуглю решение. А тут все "как открыть внешнюю программу", "как закрыть внешнюю программу", "как получить список запущенных процессов". Не знал как правильно сформулировать, вот и вы просите уточнить.

Не знаю как точнее. Просто есть программа, у которой например есть класс, а в нем метод, который например рисует фигур на форме по координатам, типа

ВнешняяПрограмма.КлассВнешнейПрограммы.РисоватьФигуру(x, y)

Я хочу написать свою программу, которая брала бы данные из ВнешнейПрограммы, обрабатывала бы их, а потом, например, по нажатию кнопки на моей форме вызывался бы метод ВнешнейПрограммы

ВнешняяПрограмма.КлассВнешнейПрограммы.РисоватьФигуру(x, y)

и на форме ВнешнейПрограммы, рисовалась бы фигура.

Идея такая. Не знаю, возможно ли такое вообще, я почему-то думаю, что должны быть классы по подключению к этой ВнешнейПрограмме, ну и работать потом с ней.

Если есть идеи, буду очень рад помощи, в том числе и по направлениям куда гуглить. Пока почитаю про ремотинг и управление СОМ-объектами. Считывать память - это наверное очень круто))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы