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

Частичная блокировка и разблокировка функций клавиатуры и мышки

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



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

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Частичная блокировка/разблокировка функций клавиатуры и мышки.

Модуль mklu. Mouse and Keyboard Lock/Unlock
(c) 2002. Автор модуля VID. vidsnap@mail.ru

Модуль предназначен для осуществления частичной
блокировки/разблокировки функций клавиатуры и мышки.
Procedure KeyBoardOn - разблокировка (включение) клавиатуры
Procedure KeyBoardOff - блокировка (выключение) клавиатуры
Procedure MouseOn - разблокировка (включение) мышки
Procedure MouseOff - блокировка (выключение) мышки

Зависимости: windows
Автор:       VID, vidsnap@mail.ru, ICQ:132234868, Махачкала
Copyright:   какой-то faq
Дата:        3 июня 2002 г.
***************************************************** }

unit mklu;

interface

uses
  Windows;

var
  m_OldMHook: HHook = 0;
  k_OldKBHook: HHook = 0;

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
procedure KeyBoardOn;
procedure KeyBoardOff;
function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
  stdcall;
procedure MOUSEON;
procedure MouseOff;

implementation

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
begin
  if code < 0 then
    Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)
  else
    Result := 1;
end;

// включение клавы

procedure KeyBoardOn;
begin
  if k_OldKbHook <> 0 then
  begin
    UnHookWindowshookEx(k_OldKbHook);
    k_OldKbHook := 0;
  end;
end;

// выключение клавы

procedure KeyBoardOff;
begin
  k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;

function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
  stdcall;
begin
  if code < 0 then
    Result := CallNextHookEx(m_oldMHook, code, wparam, lparam)
  else
    Result := 1;
end;

// включение мышки

procedure MOUSEON;
begin
  if m_OldMHook <> 0 then
  begin
    UnHookWindowshookEx(m_OldMHook);
    m_OldMHook := 0;
  end;
end;

// выключение мышки

procedure MouseOff;
begin
  m_OldMHook := SetWindowsHookEx(WH_MOUSE, @MOUSEHook, HInstance, 0);
end;

end.

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

uses mklu;

{блокировка(LockIt = true) или разблокировка(LockIt= False) клавы}

procedure LockUnlockKeyboard(LockIt: Boolean);
begin
  if LockIt then
    KeyBoardOFF
  else
    KeyBoardOn;
end;

{блокировка(LockIt = true) или разблокировка(LockIt= False) мышки}

procedure LockUnlockMouse(LockIt: Boolean);
begin
  if LockIt then
    MouseOff
  else
    MouseOn;
end;

Модуль Delphi по имени mklu предназначен для блокировки и разблокировки клавиатуры и мыши. Модуль использует Windows- hooks для достижения этого.

Вот подробное описание кода:

  1. Секция interface объявляет необходимые зависимости, включая модуль Windows.
  2. Секция var определяет два глобальных переменных: m_OldMHook и k_OldKBHook, которые хранят handles предыдущих hook-ов клавиатуры и мыши соответственно.
  3. Функции KbHook и MouseHook являются callback-функциями, которые будут вызываться при наступлении события клавиатуры или мыши. Эти функции просто вызывают следующий hook-функцию в цепочке используя CallNextHookEx.
  4. Процедуры KeyBoardOn и KeyBoardOff управляют hook-ом клавиатуры. Когда вызывается KeyBoardOn, она отменяет любые существующие hook-и для клавиатуры и настраивает новый, вызывая SetWindowsHookEx. Conversely, когда вызывается KeyBoardOff, она отменяет текущий hook для клавиатуры.
  5. Процедуры MouseOn и MouseOff управляют hook-ом мыши аналогично hook-у клавиатуры.
  6. Процедуры LockUnlockKeyboard и LockUnlockMouse являются примерами использования этого модуля. Они принимают булев параметр LockIt, который определяет, блокировать или разблокировать клавиатуру или мышь.

Некоторые примечания к коду:

  • Константа WH_KEYBOARD используется для указания hook-а клавиатуры, а WH_MOUSE - для указания hook-а мыши.
  • Переменная HInstance ссылается на экземпляр модуля, который будет использоваться в качестве контекста для hook-ов.
  • Функция UnHookWindowshookEx используется для отмены hook-a, а SetWindowsHookEx - для настройки нового hook-a.

В целом, этот модуль предоставляет простой способ блокировки и разблокировки клавиатуры и мыши с помощью Windows- hooks. Он может быть полезен в ситуациях, когда вам нужно временно отключить ввод пользователя или ограничить доступ к определенным функциям.

Модуль mklu для частичной блокировки и разблокировки функций клавиатуры и мышки позволяет программно включать или выключать клавиатуру и мышку.


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

Получайте свежие новости и обновления по 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:48:41/0.0060269832611084/0