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 г.
***************************************************** }
unit LockSys;
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); // Разблокировка клавы и мыши