Re: hook in service

From
Alex Fedotov ()
To
Vitalik Perepelkin ()
Date
2001-07-03T21:48:36Z
Area
SU.WINDOWS.NT.PROG
From: "Alex Fedotov" <alexf@3cube.com>

Vitalik Perepelkin wrote:

> почему хук на клавиатуpу не pаботает в сеpвисе?
> все пpоходит без ошибок, хук вешается, но не pеагиpует на клавиши.
> а вообще чем сеpвис от обычного пpиложения отличатся?

Если не предпринимать никаких дополнительных телодвижений, то сервис
работает на неинтерактивной window station.

Чтобы сервис работал на интерактивной станции, его нужно создавать с флагом
SERVICE_INTERACTIVE_PROCESS или явным образом присоединить его к WinSta0 с
помощью SetProcessWindowStation. Кроме того, нужно установить десктоп
пользователя (он имеет имя "default") в качестве текущего десктопа для того
потока, в котором ты собираешься устанавливать hook.

Пример кода можно посмотреть здесь:
Q173687 HOWTO: Access the Application Desktop from a Service
http://support.microsoft.com/support/kb/articles/Q173/6/87.ASP

--
Alex Fedotov


Отправлено через сервер Talk.Ru - http://www.talk.ru
--- ifmail v.2.15dev5
 * Origin: 3Cube, Inc. (www.3cube.com) (2:5020/400)