![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Взаимодействие сервиса с клавиатурой [Win2k, WinXP]
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 и выше
не то чтобы не желательно, там просто этот флаг не имеет никакой силы.
> Взаимодействие сервиса с клавиатурой
задумка изначально ошибочная.