Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 817

•  TDictionary Custom Sort  6 816

•  Fast Watermark Sources  6 598

•  3D Designer  9 560

•  Sik Screen Capture  6 937

•  Patch Maker  7 387

•  Айболит (remote control)  7 332

•  ListBox Drag & Drop  6 188

•  Доска для игры Реверси  98 166

•  Графические эффекты  7 503

•  Рисование по маске  6 790

•  Перетаскивание изображений  5 646

•  Canvas Drawing  6 025

•  Рисование Луны  5 816

•  Поворот изображения  5 268

•  Рисование стержней  3 859

•  Paint on Shape  3 016

•  Генератор кроссвордов  3 969

•  Головоломка Paletto  3 147

•  Теорема Монжа об окружностях  3 984

•  Пазл Numbrix  2 631

•  Заборы и коммивояжеры  3 443

•  Игра HIP  2 359

•  Игра Go (Го)  2 273

•  Симулятор лифта  2 675

•  Программа укладки плитки  2 236

•  Генератор лабиринта  2 788

•  Проверка числового ввода  2 395

•  HEX View  2 729

•  Физический маятник  2 421

 
скрыть

Delphi Sources

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



Автор: VID

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