Блокировка клавиатуры и мыши
Иногда возникает необходимость в программной блокировке устройств ввода. Для чего это нужно? Да для разных случаев - для контроля доступа к компьютеру чтобы не кто не мог его использовать Ваше отсутствие или ради обычной безобидно шутки :о)
Для начала необходимо создать глобальный 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;
Вот в принципе и всё, вызывая соответствующие функции, мы можем контролировать клавиатуру и мышку!