Мы использовали два системных файла. Это 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); // Разблокировка клавы и мыши |
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!