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)