Каков хороший способ подключения службы Windows с интерактивным окном (HWND)? - PullRequest
0 голосов
/ 08 октября 2010

У меня есть две технологии Windows, которые я хотел бы использовать вместе: TSP ( поставщик услуг TAPI ) и API, обернутый вокруг некоторого оборудования.API принимает запросы синхронно, но асинхронно возвращает результат успеха / неудачи / состояния, посылая сообщения в переданный HWND.

Насколько я понимаю, проблема в том, что, поскольку TSP работает как служба Windows, его выполнениеконтекст не имеет доступа к большинству интерактивных функций Windows.Так что, как бы я ни хотел напрямую связать их вместе, я не могу - насколько я могу судить, у TSP нет ( и действительно не может ) HWND дляAPI для отправки сообщений.:-(

Для кого-то вроде меня, который когда-либо программировал только Windows-контент на одной стороне служебной / интерактивной линии, все это немного сногсшибательно. Но Windows - это путьзначит, должно быть несколько разумных способов передачи сообщений через эту строку, верно?

Как бы вы посоветовали мне попытаться соединить эти две вещи? Спасибо! :-)

Ответы [ 3 ]

1 голос
/ 08 октября 2010

Служба может создать «окно сообщения» (окно, родитель которого является HWND_MESSAGE) и запустить насос сообщений. Окно сообщений не имеет пользовательского интерфейса и поэтому не взаимодействует с рабочим столом.

0 голосов
/ 08 ноября 2010

Ваша служба может создать именованный объект сопоставления файлов в пространстве имен объектов Global, а затем интерактивная программа сможет открыть это сопоставление файлов. После этого вы можете общаться через общую память.

0 голосов
/ 08 октября 2010

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

...