Межпроцессное взаимодействие с сервисом Win32 - PullRequest
2 голосов
/ 03 августа 2011

ControlService API позволяет отправлять контрольный код в службу Win32.Однако что, если мне нужно отправить (и получить) больше, чем контрольный код?Каков наилучший способ установить связь между приложением Win32 с графическим интерфейсом пользователя и службой Win32 для обмена произвольными фрагментами данных?(Предположим, я могу скомпилировать как службу, так и приложение).Этот метод должен работать с Windows 2000 до Windows 7, и он должен работать как для администраторов, так и для обычных пользователей.Спасибо!

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Звучит так, как будто вы собираетесь, чтобы служба отвечала на удаленные запросы. Для этого вы можете использовать именованные каналы, как уже упоминалось. Однако именованные каналы немного сложнее, чем сокеты TCP.

Если вы приступите к программированию сокетов TCP (socket(), bind(), listen() и т. Д.), Вы сможете перенести эти знания на другие платформы.

0 голосов
/ 03 августа 2011

Вы можете использовать практически любой механизм IPC. Если ваш сервис и приложение основаны на .net, то наиболее распространенным решением является использование WCF. Для службы и приложения с собственным кодом очень распространенным решением является именованный канал. Но какой выбор лучше, зависит от ваших конкретных потребностей использования.

...