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

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

Блокировка клавиатуры через глобальный 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


Наверх

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