Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Блокировка системных клавиш Windows  (Прочитано 8106 раз)
0 Пользователей и 1 Гость смотрят эту тему.
bss
Гость
« : 26-08-2004 08:22 » 

Необходимо, чтобы пользователь мог работать только с нашей программой. При этом хотелось бы ему запретить использовать "не наши" комбинации клавиш. Использую функцию SetWindowHookEx для перехвата клавиш. Клавиши F1, Alt_tab и т.п. перехватываются, выполняется мой обработчик, но затем все равно идет выполнение стандартной функции для этих клавиш.
Как отменить выполнение комбинаций F1, Alt_Tab и т.п.?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 26-08-2004 14:44 » 

bss, Посмотри эту тему https://forum.shelek.ru/index.php/topic,3486.0.html , конечно там не до конца дожевано. В более простом случае, может быть надо перехватывать сообшение WM_SYSKEY. Отрабатывать его. Более точно скажу позже, надо порыться в справочнике по WinAPI.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sacha
Гость
« Ответ #2 : 01-09-2004 12:26 » new

По идее надо вернуть "0" в "The KeyboardProc hook procedure".
Записан
Серж
Гость
« Ответ #3 : 01-09-2004 13:15 » 

bss,
надо действительно вернуть значение в KeyboardProc >=0 и не сидеть в обработчике слишком долго, тогда система передает сообщение следующему обработчику. Лучше всеге в Hookе выполнять минимальные действия, например, послать сообщение и т.п.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines