Блокировка и разблокировка системыDelphi , ОС и Железо , КомпьютерБлокировка и разблокировка системы
Автор: 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); // Разблокировка клавы и мыши Эта единица Delphi обеспечивает функции блокировки и разблокировки системы. Единица
Единица использует следующие зависимости:
Вот подробное описание кода: Интерфейс
Интерфейсная секция объявляет два типа: Имплементация Секция имплементации содержит четыре функции:
Пример использования Чтобы заблокировать всю систему:
Чтобы разблокировать клавиатуру и мышь:
В целом, эта единица обеспечивает простой способ блокировки и разблокировки системы в приложениях Delphi. Модуль LockSys для блокировки и разблокировки системы, позволяющий блокировать клавиатуру и мышь, системные комбинации клавиш или все вместе. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |