![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка клавиатуры через глобальный HOOK, возможно ли? [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Eugene © (2002-12-06 12:59:00)Скажите возможно блокировать клавиатуру (что бы не одна клавиша не действовала) через глобальный HOOK. У меня получается блокировать все кнопки кроме системных (VK_LWIN, VK_RWIN, VK_APPS) а также сочетание Alt+Tab. А также работают кнопки задейтствованные другими программами (тоже через HOOK). Пробовал ставить глобальный HOOK на другие HOOK процедуры (WH_DEBUG) и блокировать их, но что-то не получается. Подскажите пожалуйста, может я иду не в том направлении.
Заранее спасибо.
mwolf (2003-01-18 02:09:00) [1]Господа.
Как человек немного работавшим с проблемой блокирования клавы и мыши, могу предложить следущий ход в решении проблемы Alt+Tab и пр. Для этого, после вешания хука, компьютер надо перевести в режим заставки.Делается это следующим образом:
// Включение режима
SYSTEMPARAMETERSINFO(SPI_SCREENSAVERRUNNING, 1, 0, 0);
// Выключение режима
SYSTEMPARAMETERSINFO(SPI_SCREENSAVERRUNNING, 0, 0, 0);
Все системные клавиши будут отключены, а остальные заблокирует ваш хук.
Diamond Cat (2002-12-09 00:54:00) [2]>Но ведь новый ставиться выше предыдущих
кто тебе такое сказал?
Song (2002-12-07 22:26:00) [3]Хорошо, тогда хук на клавиатуру, но про CAD забудь.
Eugene (2002-12-07 20:26:00) [4]> Только не понимаю зачем, если есть BlockInput()
BlockInput() блокирует все, а мне надо только клавиатуру.
Song (2002-12-07 00:48:00) [5]хуком нельзя заблокировать CAD. Остальные комбинации без проблем. Только не понимаю зачем, если есть BlockInput()
Eugene (2002-12-06 18:57:00) [6]> через хук можно заблокировать почти все
У меня не получилось перекрыть хуком системные клавиши (VK_LWIN, VK_RWIN, VK_APPS)
> но только если другие программы пользуються хуком, и этот хук старше в цепочке хуков чем твой, то тут швах
Но ведь новый ставиться выше предыдущих, значит переставляя HOOK можно постоянно держать его на верху. И потом есть HOOK и на хук, могу я другие хуки выгрузить?
Diamond Cat (2002-12-06 18:25:00) [7]через хук можно заблокировать почти все но только если другие программы пользуються хуком, и этот хук старше в цепочке хуков чем твой, то тут швах
Eugene (2002-12-06 15:58:00) [8]> Song ©
То есть через HOOK никак не заблокируешь ?
Есть еще вопрос, есть ли разница в HOOKе установленоом из под обычноо юзера (даже с паролем админа) или из под логина SYSTEM (то есть через сервис) ?
Спасибо.
Song (2002-12-06 14:38:00) [9]Блокируются одинаково: и на первой и на второй ссылке. Ctrl-Alt-Del не заблокируешь, всё остальное блокируется хорошо и через BlockInput()
Правда, можно заблокировать CAD через rundll32, однако у него есть плохая черта (если даже можно), восстановить нельзя.
Separator (2002-12-06 13:58:00) [10]не знаю
Eugene (2002-12-06 13:54:00) [11]> Separator ©
На первой ссылке вся клавиатура не бокируется.
Вторую ссылку попробую, но хотелось бы узнать по поводу HOOKа, возможно или нет.
Separator (2002-12-06 13:07:00) [12]Смотри здесь:
http://delphibase.endimus.ru/?action=viewfunc&topic=syscontrol&id=10202
http://delphibase.endimus.ru/?action=viewfunc&topic=syscontrol&id=10154