Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > как разблокировать одну кнопку?


Автор: CompWorm 26.1.2008, 21:36
хочу заблокировать клаву (с контрал альт делом) и мышь, но хочу отслеживать нажатие кнопки эскейп в таймере...

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

BlockInput(True);
...
//проверка
BlockInput(False);
if HiWord(GetKeyState(VK_ESCAPE)) <> 0 then остановить работу;
BlockInput(True);


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

в принципе есть ли возможность заблокировать все, кроме каких-то конкретных клавиш и если нет, то как решить такую задачку ?

Автор: CompWorm 27.1.2008, 18:07
... вопрос в пустоту smile 

ну ладно... все что я изобрел на эту тему - не использовать BlockInput, а  отлавливать все кнопки хуком и каждую в отдельности блокировать, кроме эскейпа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)