Как запустить уже запущенное приложение Windows на базе .net? - PullRequest
4 голосов
/ 11 мая 2009

У меня есть Windows приложение на основе .net, которое работает в памяти. Я хочу, чтобы вызвать одну из функций в приложении из внешнего приложения, которое не на основе .net. Как мне этого добиться? Запуск должен быть в режиме реального времени.

Ответы [ 6 ]

3 голосов
/ 11 мая 2009

Заставьте первое приложение прослушивать порт TCP. Подключите второе приложение к порту TCP и отправьте «ПРОГРАММА ПРОДОЛЖЕНИЯ LAZY». Сделайте так, чтобы первое приложение ответило на это чем-то.

2 голосов
/ 11 мая 2009

Если бы программа не была .net, я бы посоветовал отправить или отправить сообщение в окне: см. PostMessage и RegisterWindowMessage. Я думаю, что для получения такого сообщения в программе .net вам может понадобиться PInvoke RegisterWndowMessage и переопределить ваш WndProc.

.

Еще одна хорошая возможность - поделиться именованным мьютексом.

Вы должны определить, что вы подразумеваете под «реальным временем»: с одной стороны, в Windows нет ничего реального в реальном времени, а с другой стороны, когда вы начинаете отступать от этого и говорить вместо этого «почти в реальном времени» «мягкое реальное время», тогда становится возможным множество решений.

2 голосов
/ 11 мая 2009

Использование сокетов будет работать. Именованные каналы также будут работать.

0 голосов
/ 11 мая 2009

У CodeProject есть пример с использованием .NET Remoting / IPC:

Приложение с одним экземпляром, аргументы командной строки

0 голосов
/ 11 мая 2009

Передача сообщений , вероятно, путь. Использование сокетов тоже подойдет, но

a) может открыть уязвимости безопасности, и

b) может быть проблема с программным обеспечением брандмауэра на некоторых машинах.

0 голосов
/ 11 мая 2009

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

Дикая догадка.

спасибо 123Developer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...