Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** 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
.
Пример использования:
usesmklu; {блокировка(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
;