DevProg: Блог для программистов

Секреты программирования. Примеры разработки. Обзоры программёрского софта, блогов и форумов и просто полезные советы!

Недокументированная функция блокировки ввода

Posted by devprog на Октябрь 8, 2008

Мало кто знает, что в ОС Windows есть функция блокировки ввода с клавиатуры и мыши соответственно. Есть она и в XP и может быть даже в Vista (не пробовал). Имя ей — BlockInput из библиотеки User32.dll. В качестве параметра используется 1 и 0 (один параметр). Соответственно 1 — заблокировать, 0 — разблокировать. Только вот параметр нужно передать в стек вручную с помощью push, иначе заметны глюки.

Где применить?

Применить можно например тогда, когда не хотелось бы чтобы пользователь делал какой-то ввод. Или когда например нужно сделать какую-то паузу в работе пользователя. То есть сначала заблокировать, выполнить операции в программе, а затем разблокировать.

Пример (любой язык с ассемблерными вставками)

push 1 ;блокируем
call BlockInput


Естесственно сначала нужно обьявить процедуру, как например в Delphi:

procedure BlockInput; external ‘user32.dll’;


Advertisements

комментария 2 to “Недокументированная функция блокировки ввода”

  1. mirr0z said

    хм… а с каких пор она не документирована о_0 ???

  2. devprog said

    Оказывается, до поры и до времени она таковой была, пока её не перенесли в MSDN. Например в моём MSDN за 2001 год такой функции нет. Хотя согласно MSDN, функция появилась ещё в 98 Windows. Ещё её нет в справках Borland. Но вот узнать как давно она опубликовалась в MSDN — было бы конечно очень хорошо.

    mirr0z, спасибо вам за ценное замечание. Действительно, недосмотрел немного.

    Получить больше информации по этой теме можно на странице MSDN:
    http://msdn.microsoft.com/en-us/library/ms646290.aspx

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: