358 Блокировка и разблокировка системы . Delphi , ОС и Железо , Компьютер :: KANSoftWare
Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

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

Delphi , ОС и Железо , Компьютер

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

Автор: VID
WEB-сайт: http://delphibase.endimus.com

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

Статья Блокировка и разблокировка системы раздела ОС и Железо Компьютер может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Компьютер ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
20.04.2024 12:01:56/0.040050983428955/2