Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > обмен сообщениями с другим процессом


Автор: NYX 31.7.2012, 20:26
Уважаемые товарищи! Имеется следующая задача. 
Условие
* Запущен некий процесс, будем считать что это сервис-интерпретатор
* Запущенный процесс-сервис ожидает команд извне
Задача
* В открытом командном интерпретаторе windows надо ввести строку some_service argument
* Запущенный процесс-сервис принимает строку будучи запущенным и делает что-то

Все что пришло мне в голову - some_service является сторонним модулем, который запускается и передает полученный аргумент сервису под средством какого то WM_. Чует моя пятая точка что это костыли и наверняка есть более удобный и действенный метод. В принципе отправка таким способом реальна наверно только при наличии самого окна, но сервис предполагается без окна. Так что даже не знаю что и придумать. Ребят, может кто сможет подсказать или указать пальцем хотя бы в каком направлении искать? Заранее всем спасибо!  smile 

Автор: korian 31.7.2012, 20:38
Вариантов море:
http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BD%D0%BE%D0%B5_%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5

я бы выбирал между Сокет, Именованный канал
Сокет - если должна быть возможность доступа с другого компа
Именованный канал - если этого не надо

Автор: NYX 31.7.2012, 21:17
Сокет как вариант... да, забыл про него упомянуть. Но сокет например может предусматривать безопасное соединение. А что бы например каждый раз не вводить пароль... захватить и властвовать. И вот про именованный канал интересно. поду копать smile Спасибо!

Автор: feodorv 1.8.2012, 00:33
Цитата(NYX @  31.7.2012,  22:17 Найти цитируемый пост)
Но сокет например может предусматривать безопасное соединение.

Не понял. Не могли бы Вы раскрыть смысл этой фразы? smile 

Цитата(NYX @  31.7.2012,  21:26 Найти цитируемый пост)
и передает полученный аргумент сервису под средством какого то WM_

Если предполагаемый "сервис" действительно предполагается реализовывать как Windows-сервис, то в Win7 и выше от пользователя к сервису сообщения WM_ ходить не будут.

Цитата(korian @  31.7.2012,  21:38 Найти цитируемый пост)
Именованный канал - если этого не надо

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

Автор: NYX 1.8.2012, 23:04
Роль приложения как СЕРВИСА не принципиальна. На счет WM_ сервисам... да-да, я где то про это читал сегодня уже. 

Автор: NYX 3.8.2012, 10:53
Нашел очень много интересно информации в книге "программирование Win32" К.Г. Феногенова.

Добавлено через 2 минуты и 7 секунд
Цитата

Цитата

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


Не понял. Не могли бы Вы раскрыть смысл этой фразы?  


Легко. Сокет можно использовать как например SSH между клиент-сервером. А на локальном компе это может быть уже что то другое.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)