Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Общение между приложениями [WinXP]


Castello ©   (2008-09-28 22:54:00) 

Нужно сделать следующее. Есть некоторое приложение (мной написанное), тихо запускается, выполняет свою работу и не делает никаких оповещений (ни в окна, ни на консоль). Это, так сказать, его рабочий режим.

Но иногда нужно проверить, как проходит в нём работа. Что-то вроде Debug-режима. Только выглядеть это должно так: другое моё приложение запускает первое (скажем, с каким-нибудь ключём) и должно контроллировать его: отслеживать, что процесс выполняется и получать от него сообщения. Т.е. чтобы можно было вывести что-то типа progress bar для него.

Как это реализовать?


Leonid Troyanovsky   (2008-09-29 13:04:00) [1]


> KSergey ©   (29.09.08 11:37) [14]

> консолька-то все равно появится на сколько я понимаю. "по-
> тихому" не выйдет :)

Слишком тихим место на погосте.

Бо, не консоль или вовсе без окна - не могут нормально
завершиться при логоф/шутдаун.

--
Regards, LVT.


KSergey   (2008-09-29 11:37:00) [2]

> Leonid Troyanovsky ©   (29.09.08 11:29) [13]
> Если консольный вывод не нужен, то достаточно было project.exe > nul

консолька-то все равно появится на сколько я понимаю. "по-тихому" не выйдет :)


Leonid Troyanovsky   (2008-09-29 11:29:00) [3]


> KSergey ©   (29.09.08 11:17) [12]

> Так может достаточно сделать одно приложение, котрое просто
> будет показывать или не будет (в зависимости от ключика)
> окно с прогресс баром? И этого достаточно?

Не понятно, к чему, во-ще, тут извращения.
Если консольный вывод не нужен, то достаточно было project.exe > nul

--
Regards, LVT.


KSergey   (2008-09-29 11:17:00) [4]

Я вот чего не понял: автор про другие компьютеры и про сеть речь вообще не вел.
Так может достаточно сделать одно приложение, котрое просто будет показывать или не будет (в зависимости от ключика) окно с прогресс баром? И этого достаточно?
Так же можно писаль логи (хотя бы просто проценты) в файл, который тут же в real-time просматривать через FAR. Хоть и с другого компьютера. Выводить в файл или нет опять же можно задавать ключиком.


Slym   (2008-09-29 04:14:00) [5]

debuger.exe запускает основную прогу с перенаправлением StdIn/Out
myprog.exe /UseStdOut
прога анализирует наличие ключика и пользуется или не пользуется StdOut


Дмитрий Белькевич   (2008-09-29 03:23:00) [6]

зы: только TIdSyslogServer, конечно...


Дмитрий Белькевич   (2008-09-29 03:21:00) [7]

Есть, кстати, еще такая замечательная штука, как TIdSysLog. Со стандартным протоколом и множеством разных 'смотрелок'. Её можно хоть в инете удалённо юзать. Очень бывает полезно, на самом деле...


Германн   (2008-09-29 01:45:00) [8]


> Eraser ©   (29.09.08 01:27) [6]
>
> > [5] Германн ©   (29.09.08 00:41)
>
> ну эт уже вопрос к автору )
> как он там сконструирует уже. я так понял, что если процесс
> запущен с ключем /debug то приложение будет, грубо говоря,
>  логировать свою работу в, к примеру, именованный канал.
>
>

Не. Не то.
Я говоря про TCP/IP имел в виду, что данное приложение можно сделать TCPСервером, открывать всегдапорт на прослушку и отправлять в этот порт информацию толькоесли к этому порту подсоединён хотя бы один клиент. Имхо, накладные расходы в данном варианте самые низкие при сохранении полной универсальности.


Городской Шаман   (2008-09-29 01:34:00) [9]

http://www.pcmag.ru/issues/detail.php?ID=9945

Ну и еще регистрация своих сообщений RegisterWindowMessage  и отсылка SendMessage

Или memory mapped file


Eraser   (2008-09-29 01:27:00) [10]

> [5] Германн ©   (29.09.08 00:41)

ну эт уже вопрос к автору )
как он там сконструирует уже. я так понял, что если процесс запущен с ключем /debug то приложение будет, грубо говоря, логировать свою работу в, к примеру, именованный канал.


Германн   (2008-09-29 00:41:00) [11]


> Eraser ©   (29.09.08 00:28) [4]

Не знал.
А что про "особый запуск с ключом" в решении через именованные каналы?


Eraser   (2008-09-29 00:28:00) [12]

> [3] Германн ©   (29.09.08 00:19)

через именованные каналы тоже можно с другово компа.


Германн   (2008-09-29 00:19:00) [13]

Ну и о TCP/IP не стоит забывать. Тогда можно будет контролировать с другого компьютера в сети. И при этом отпадет надобность в "особом запуске" с ключом.


@!!ex   (2008-09-28 23:38:00) [14]

Для прогресс бара вполне достаточно стандартных виндовых сообщений.


Eraser   (2008-09-28 23:35:00) [15]

> [0] Castello   (28.09.08 22:54)


> Но иногда нужно проверить, как проходит в нём работа. Что-
> то вроде Debug-режима. Только выглядеть это должно так:
> другое моё приложение запускает первое (скажем, с каким-
> нибудь ключём) и должно контроллировать его: отслеживать,
> что процесс выполняется и получать от него сообщения. Т.е.
> чтобы можно было вывести что-то типа progress bar для него.
>
> Как это реализовать?

через named pipes проще всего.


Наверх

Титульная страница Поиск, карта сайта Написать письмо