powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как передать данные от одного процесса к другому
7 сообщений из 7, страница 1 из 1
Как передать данные от одного процесса к другому
    #39099143
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
у меня есть 2 приложения, оба пишу я.
1 приложение что то типа лаунчера, оно запускает второе и висит как процесс. Далее первое приложение на сервере проверяет есть ли обновление. Если обновление есть, 1 приложение должно как то правильно сказать 2-му приложению что ему надо завершиться. Далее первое приложение скачивает какие то файлы, и вновь запускает 1 приложение.
Оба приложения пишу на c#, windows forms.
Как мне можно подобное реализовать?
Сейчас делаю вот так:
Код: c#
1.
2.
3.
4.
5.
Process proc = new Process();
proc.StartInfo.FileName = "D:/dir/Programm.exe";
proc.Start();

proc.Kill();


Вроде все работает, но вторая программа использует notifyIcon и если ее так завершать, то в трее остается значок, когда запускается новое, то у меня уже 2 значка висят в треее. После наведения, один из них исчезает. То есть чтобы он исчезал, надо как то сделать так чтобы программа 2 завершала сама себя.
Заранее большое спасибо!
...
Рейтинг: 0 / 0
Как передать данные от одного процесса к другому
    #39099154
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как передать данные от одного процесса к другому
    #39099465
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_lax,
WCF + именованные каналы как транспорт.
...
Рейтинг: 0 / 0
Как передать данные от одного процесса к другому
    #39099474
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны,

Спасибо большое, сделал все по примеру вот тут https://code.msdn.microsoft.com/windowsapps/CSReceiveWMCOPYDATA-dbbc7ed7#content
Все работает хорошо, но есть один момент...
Моя программа при старте скрывается в трее, делаю это вот так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 private bool allowShowDisplay = false;
        private FormWindowState oldState;
        

        
        protected override void SetVisibleCore(bool value)
        {
            if (!allowShowDisplay) value = false;
            base.SetVisibleCore(value);
            Activate();
        }


В общем когда первая программа пытается отправить второй сообщение, а та в свою очередь скрыта, то первая выдает ошибку что не удалось найти такую форму... Как можно обойти это?
Если программа просто свернута, то все нормально работает.
...
Рейтинг: 0 / 0
Как передать данные от одного процесса к другому
    #39099496
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВVaneS Ri_lax,
WCF + именованные каналы как транспорт.

Почему бы не воспользоваться этим советом?
...
Рейтинг: 0 / 0
Как передать данные от одного процесса к другому
    #39099510
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WinnipuhПочему бы не воспользоваться этим советом?
Я тот вариант уже реализовал почти, если есть возможность доделать то, то зачем что то реализовывать другое?
Если тот вариант предусматривает только работу с формами которые открыты или просто свернуты, то да, надо думать что то еще.
...
Рейтинг: 0 / 0
Как передать данные от одного процесса к другому
    #39107115
Poke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaneS Ri_lax,

Может, посмотреть в сторону Mutex/Semaphore? Их прелесть в том, что они легковесны и доступны _из_всех_процессов_, независимо от наличия форм. Фактически, тебе даже не придётся держать "лончер" - периодический таск будет проверять обновку, качать файлы и дёргать семафор, а главное приложение проверит семафор и как можно быстрее помрёт.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как передать данные от одного процесса к другому
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]