Как использовать FindWindow () из приложения-службы? - PullRequest
3 голосов
/ 04 февраля 2011

Мне нужно связать приложение-службу с приложением vcl. Моим старым приложением была консоль, и консоль без проблем общается с приложением vcl. Теперь я переношу консольное приложение в приложение srv. В старых сообщениях использовались FindWindow и SendMessage.

Я знаю, что могу установить связь между ними, используя сокет или именованный канал, НО, я не хочу сейчас менять структуру, потому что это задержит миграцию

Кто-то знает, как я могу это исправить?

ТКС

Ответы [ 3 ]

8 голосов
/ 04 февраля 2011

FindWindow не будет работать со службой в Vista или Win7, потому что службы работают на другом рабочем столе, чем пользовательские приложения; как и SendMessage, потому что вы не можете получить дескриптор окна. Это означает, что вам придется использовать другое средство связи между ними, если вы будете поддерживать эти версии ОС.

1 голос
/ 04 февраля 2011

Вы не можете это исправить. Сервисы теперь работают в другом сеансе и не имеют доступа к рабочему столу пользователя. Решением является именованная труба.

1 голос
/ 04 февраля 2011

Будет ли ControlService работать вместо SendMessage?Я думаю, что вы должны быть в состоянии передать это вашей существующей структуре.

http://www.delphigroups.info/3/10/156645.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...