Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Блокировка клавиатуры и мышки

Delphi , ОС и Железо , Компьютер



Автор: IVA
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Блокирует ВСЕ, и клавиатуру и мышь.

Зависимости: нет
Автор:       -=IVA=-, seriva@mail.ru, ICQ:23667711, Moscow
Copyright:   С приятелем наковыряли
Дата:        19 января 2004 г.
***************************************************** }

procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';
  // Вызываем функцию из DLL'ки

Пример использования:

procedure TForm1.N1Click(Sender: TObject);
begin
  BlockInput(True);
  // Вот собственно этим мы и блокируем клаву и мышь
  // (для обратного исхода надо вместо True написать False)
end;

Программа на Delphi, блокирующая ввод с клавиатуры и мыши. Программа использует функцию BlockInput из библиотеки USER32.DLL, которая является частью операционной системы Windows.

Функция BlockInput принимает булевый параметр, определяющий, блокировать или разблокировать ввод. Когда он установлен в True, блокирует все ввод с клавиатуры и мыши до тех пор, пока не будет установлен в False.

В этом примере программа создает форму с кнопкой. Когда кнопка нажата, программа вызывает функцию BlockInput с аргументом True. Это блокирует все ввод с клавиатуры и мыши.

Разблокировать ввод можно, вызвав функцию BlockInput снова с аргументом False.

Примечание: это программа не требует никаких зависимостей, кроме операционной системы Windows.

Альтернативное решение, если вам нужно блокировать только конкретные приложения или окна, можно использовать функцию SetWindowHookEx из библиотеки USER32.DLL. Функция позволяет установить процедуру hook, которая может перехватывать и манипулировать сообщениями окон.

Вот пример использования этой функции для блокировки ввода для конкретного приложения:

procedure TForm1.N1Click(Sender: TObject);
begin
  SetWindowHookEx(WH_KEYBOARD_LL, @KeyboardHookProc, nil);
end;

function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT;
begin
  if (nCode >= 0) and (MOUSEHOOKSTRUCT(lParam).mouseData = 0) then
    return 1;
  Result := CallNextHookEx(nil, nCode, wParam, lParam);
end;

Код устанавливает процедуру hook для клавиатуры, которая перехватывает все сообщения о вводе. Функция KeyboardHookProc проверяет, является ли сообщение связанным с вводом мыши (проверка поля mouseData структуры MOUSEHOOKSTRUCT) и возвращает 1, чтобы блокировать ввод. В противном случае она вызывает следующую процедуру hook в цепочке.

Примечание: это решение требует больше кода и является более сложным, чем оригинальный пример, но оно предоставляет более тонкую контроль над тем, какие приложения или окна влияют на блокировку ввода.

Блокировка клавиатуры и мышки - это процедура, которая позволяет временно заблокировать доступ к вводным устройствам, используя функцию из DLL'ки USER32.DLL.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Компьютер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-11 20:09:57/0.0060980319976807/0