Блокировка и разблокировка системы

Советы » Компьютер » Блокировка и разблокировка системы

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

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com