| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Передача параметров из одного приложения в другое |
| Автор: Brain89 19.4.2011, 17:33 |
| У меня возникла проблема, которую в приближении можно описать так. Есть одно приложение со строкой ввода. По нажатию на кнопку строка передается во второе приложение (не форму! приложения независимы) и отображается в строке второго приложения. Если изменить надпись в первом приложении и снова нажать на кнопку, то надпись во втором приложении изменяется. Оба приложения запущены. Как подобное реализовать без использования сокетов (у меня маленькая локальная программа), без внешних файлов и реестра? Возможно ли это в условиях таких ограничений? Заранее спасибо. |
| Автор: likegift 19.4.2011, 18:13 |
| Pipes ? |
| Автор: Voyager 19.4.2011, 21:45 | ||
Можно. Гуглите в сторону pinvoke: WM_COPYDATA, как раз то что нужно.
http://msdn.microsoft.com/en-us/library/ms649011(VS.85).aspx http://www.codeproject.com/KB/cs/wm_copydata_use.aspx http://www.codeproject.com/KB/threads/InterprocessCommunicator.aspx http://social.msdn.microsoft.com/Forums/en-US/vbinterop/thread/62d0c25f-dadb-4b24-9679-f9f75717456c/ |
| Автор: -Mikle- 20.4.2011, 06:53 |
Думаю это слишком нативно для дотNET. Способов и без этого хватает. Лучше использовать те же пайпы как предложил likegift, или ремоутинг, ИМХО. |
| Автор: neutrino 20.4.2011, 14:02 |
| Named Pipes Shared memory DDE |
| Автор: Brain89 20.4.2011, 16:29 | ||||||
| Спасибо всем за советы. В моем случае удобнее было бы использовать Pipe или посылку сообщения WM_COPYDATA (попробовал эти варианты, вполне работает), Remoting слишком масштабно, что ли. Но сейчас решил сделать следующим образом. Помимо написано выше, мне требуется, чтобы первая форма запускалась в единственном экземпляре. Потому я добавил такой класс:
И вызываю форму так:
В самом же обработчике запуска второго экземпляра получаю параметры командной строки, переданные из второго приложения и содержащие нужную строку, и работаю с ними:
Как вам такой вариант? Я подозреваю, что у него есть какие-то изъяны, но пока не знаю, какие) |