Содержание материала

Мы использовали два системных файла. Это AutoExec.bat и Config.sys. В текстовое поле по имени Memo1 поочерёдно помещаем содержимое файлов с помощью метода LoadFromFile и добавляем нужный код. В конфиге мы создаём меню, которое будет отображать при загрузке системы. Состоять оно будет из двух пунктов: HackSystem и FuckSystem. А в автоэкзэке описываем, что по нажатию на том или ином пункте меню машина будет зацикливаться... т.е. глупый пользователь, взяв один из пунктов меню будет сидеть и ждать, пока не запустится Windows, любуясь на заставку маст-дая с облачками и остальными причиндалами. Ему не в жизнь не догадаться нажать Esc, а если нажмёт, то то, что он увидит... м-да... лучше сто раз увидеть, чем один раз заиметь...

 

Code:

{ **** UBPFD *********** ****

>> Блокировка/Разблокировка системы.

 

Модуль LockSys. Блокировка/Разблокировка системы.

Метод блокировки: блокируется (по-выбору) клавиатура и мышь,

системные комбинации клавиш, или всё вместе.

БЛОКИРОВКА СИСТЕМЫ: function LockSystem(LockMode:TLockMode):Boolean;

Возможные значения параметра LockMode:

lmInput - блокировка мыши и клавитатуры

lmSystemKeys - блокировка системных комбинаций клавиш

lmBoth = lmInput + lmSystemKeys

В случае успеха функция возвращает True, иначе - False

 

РАЗБЛОКИРОВКА СИСТЕМЫ: function UnLockSystem(UnLockMode:TLockMode):Boolean;

Входные параметры аналогичны функции LockSystem, но только

речь в данном случае идёт о разблокировке.

В случае успеха - True, иначе - False.

 Зависимости: windows

Автор:       VID, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., Copyright:   VID (основа списана из одного FAQ)

***************************************************** }

 

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

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить