Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Взаимодействие сервиса с клавиатурой [Win2k, WinXP]


Страницы:   1 2

Alexandro ©   (2010-09-05 01:41:00) 

Здравствуйте ! Пишу сервис, который должен по нажатию определенного сочетания клавиш выполнять некоторые действия. Проблема в том, что классическое решение в виде дополнительной программы, работающей в пользовательском режиме с RegisterHotKey не подходит так как срабатывание должно происходить и при отсутствии залогиненного пользователя. Насколько я понял из MSDN, SERVICE_INTERACTIVE_PROCESS не желательно использовать в Windows Vista и выше. Да и достаточно NoInteractiveServices поставить в не ноль, чтобы отключить этот флаг.

Вопрос: Как сделать так, чтобы сервис реагировал на заданное сочетание клавиш не зависимо от наличия залогиненных пользователей ?


Alexandro   (2010-09-05 20:14:00) [21]


> Anatoly Podgoretsky ©   (05.09.10 19:33) [7]
> > Alexandro  (05.09.2010 19:11:06)  [6]Ну у пользователей
> прав нет, а у тебя есть? Вот ты и нажмешь и кирдык.

Я не могу стоять у каждого компа круглые сутки и не хочу ;)


> Решение в общем то неверное, такое решается через разрушение
> винчестера, скажем взрыв пакет и волшебная кнопка (физическая)
> или сервер в Зимбабве.

Заграничная терминалка там не прокатит - под такое количество пользователей с их задачами - нужен уже хороший кластер и толстый интернет-канал с обеих концов. Локальные-то сервера как раз защищены запалами. И физическая кнопка есть - она же кстати, стартует по сети сообщение, которое тоже ловит сервис и делает тоже самое. Удаление же данных с компьютера пользователя все равно делать придется - пусть даже это будут записи о терминальном доступе.


> DVM ©   (05.09.10 19:40) [8]
> > Alexandro   (05.09.10 19:11) [6]Драйвер тебе поможет точно.
>  Пусть твоя служба с драйвером и общается.

Да написал уже драйвер-фильтр - запнулся на 64 битной семерке, будь она не неладна... Думал есть другое решение, но похоже, что нет.


DVM   (2010-09-05 19:40:00) [22]


> Alexandro   (05.09.10 19:11) [6]

Драйвер тебе поможет точно. Пусть твоя служба с драйвером и общается.


Anatoly Podgoretsky   (2010-09-05 19:33:00) [23]

> Alexandro  (05.09.2010 19:11:06)  [6]

Ну у пользователей прав нет, а у тебя есть? Вот ты и нажмешь и кирдык.
Решение в общем то неверное, такое решается через разрушение винчестера,
скажем взрыв пакет и волшебная кнопка (физическая) или сервер в Зимбабве.


Alexandro   (2010-09-05 19:11:00) [24]


> Eraser ©   (05.09.10 02:37) [1]
> задумка изначально ошибочная.

Ну, другого способа реализации я пока не вижу - задача из серии boss-key по приходу нежелательных гостей уничтожить необходимую информацию в реестре всех пользователей компьютера. Доступ к реестрам всех пользователей возможен только с правами администратора или из сервиса.
А пользователи, которые будут эту комбинацию нажимать таковыми правами не обладают.


> Leonid Troyanovsky ©   (05.09.10 10:01) [2]
> А кто
> же клаву топтать будет, если юзеров не будет в наличии?Поручать
> обработку ввода надо клиенту, запустить который можнохоть
> в автозагрузке.

Ситуация: компьютер загружен - висит экран выбора пользователя. Залогиненные пользователей нет, физически человек у компьютера есть. Клиент пользовательского режима не загружен еще, а обработать нажатие нужно. Соответственно нажимать комбинацию будет человек когда залогиненного пользователя нет. Процесс входа пользователя занимает время, которого может не быть.


> Anatoly Podgoretsky ©   (05.09.10 10:47) [3]
> Это уже не сервис.

Давайте опустим слово "сервис" - задача описана в данном сообщении выше. Если есть другое решение с удовольствие выслушаю.


> Плохиш ©   (05.09.10 15:22) [4]
> Малъчико хочет тырить пароли...

"Благородный дон телепат ?" (С) Ketmar

<OFFTOP>
p.s. Мне залогинется с голубым значком, чтобы на вопрос попробовали ответить ? :))) Извините, пароля не помню своего - три года как не заходил.
p.p.s. Анатолий, Вы не изменились :)
</OFFTOP>


Anatoly Podgoretsky   (2010-09-05 16:01:00) [25]

> Плохиш  (05.09.2010 15:22:04)  [4]

Проказник.


Плохиш   (2010-09-05 15:22:00) [26]

Малъчико хочет тырить пароли...


Anatoly Podgoretsky   (2010-09-05 10:47:00) [27]


> Пишу сервис, который должен по нажатию определенного сочетания
> клавиш выполнять некоторые действия.

Это уже не сервис.


> так как срабатывание должно происходить и при отсутствии
> залогиненного пользователя

И кто же тогда будет нажимать клавиши?


Leonid Troyanovsky   (2010-09-05 10:01:00) [28]


> Alexandro   (05.09.10 01:41)  

> Вопрос: Как сделать так, чтобы сервис реагировал на заданное
> сочетание клавиш не зависимо от наличия залогиненных пользователей

А кто же клаву топтать будет, если юзеров не будет в наличии?

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

See also: http://rsdn.ru/?forum/delphi/2187439.aspx

--
Regards, LVT.


Eraser   (2010-09-05 02:37:00) [29]

> Насколько я понял из MSDN, SERVICE_INTERACTIVE_PROCESS не
> желательно использовать в Windows Vista и выше

не то чтобы не желательно, там просто этот флаг не имеет никакой силы.

> Взаимодействие сервиса с клавиатурой

задумка изначально ошибочная.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо