Главная страницаОбратная связьКарта сайта

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

Иногда возникает необходимость в программной блокировке устройств ввода. Для чего это нужно? Да для разных случаев - для контроля доступа к компьютеру чтобы не кто не мог его использовать Ваше отсутствие или ради обычной безобидно шутки :о)

Для начала необходимо создать глобальный Hook на устройства:

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

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 KeyBoardOff;
begin
k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;

И включение клавиатуры:

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

Блокировка кнопок мышки:

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

Включение кнопок мышки:

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

Вот в принципе и всё, вызывая соответствующие функции, мы можем контролировать клавиатуру и мышку!

   


Copyright © 2008 - 2024 Дискета.info