Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com **** >> Блокировка/Разблокировка системы. Модуль LockSys. Блокировка/Разблокировка системы. Метод блокировки: блокируется (по-выбору) клавиатура и мышь, системные комбинации клавиш, или всё вместе. БЛОКИРОВКА СИСТЕМЫ: function LockSystem(LockMode:TLockMode):Boolean; Возможные значения параметра LockMode: lmInput - блокировка мыши и клавитатуры lmSystemKeys - блокировка системных комбинаций клавиш lmBoth = lmInput + lmSystemKeys В случае успеха функция возвращает True, иначе - False РАЗБЛОКИРОВКА СИСТЕМЫ: function UnLockSystem(UnLockMode:TLockMode):Boolean; Входные параметры аналогичны функции LockSystem, но только речь в данном случае идёт о разблокировке. В случае успеха - True, иначе - False. Зависимости: windows Автор: VID, vidsnap@mail.ru, ICQ:132234868, Махачкала Copyright: VID (основа списана из одного FAQ) Дата: 26 мая 2002 г. ***************************************************** } unitLockSys; interface
uses
Windows; type
TLockMode = (lmInput, lmSystemKeys, lmBoth); function
FuncAvail(_dllname, _funcname: string
; var
_p: pointer): boolean; function
LockSystem(LockMode: TLockMode): Boolean; function
UnLockSystem(UnLockMode: TLockMode): Boolean; var
xBlockInput: function
(Block: BOOL): BOOL; stdcall
; implementation
function
FuncAvail(_dllname, _funcname: string
; var
_p: pointer): boolean; var
_lib: tHandle; begin
Result := false; _p := nil
; if
LoadLibrary(PChar(_dllname)) = 0 then
exit; _lib := GetModuleHandle(PChar(_dllname)); if
_lib <> 0 then
begin
_p := GetProcAddress(_lib, PChar(_funcname)); if
_p <> nil
then
Result := true; end
; end
; function
LockSystem(LockMode: TLockMode): Boolean; begin
Result := False; if
LockMode = lmSystemKeys then
//Locking system if
not
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, nil
, 0) then
Exit; if
LockMode = lmInput then
//locking keyb and mouse if
FuncAvail('USER32.DLL', 'BlockInput', @xBlockInput) then
xBlockInput(true) else
Exit; if
LockMode = lmBoth then
begin
if
not
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, nil
, 0) then
Exit; if
FuncAvail('USER32.DLL', 'BlockInput', @xBlockInput) then
xBlockInput(true) else
Exit; end
; Result := True; end
; function
UnLockSystem(UnLockMode: TLockMode): Boolean; begin
Result := False; if
UnLockMode = lmSystemKeys then
//UnLocking system if
not
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, nil
, 0) then
Exit; if
UnLockMode = lmInput then
//unlocking keyb and mouse if
FuncAvail('USER32.DLL', 'BlockInput', @xBlockInput) then
xBlockInput(false) else
Exit; if
UnLockMode = lmBoth then
begin
if
not
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, nil
, 0) then
Exit; if
FuncAvail('USER32.DLL', 'BlockInput', @xBlockInput) then
xBlockInput(false) else
Exit; end
; Result := True; end
; end
.
Пример использования:
LockSystem(lmBoth); // Блокировка всей системы UnLockSystem(lmInput); // Разблокировка клавы и мыши