Блокиратор Windows(Пример реализации на Delphi)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Блокиратор 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<>'' 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 и записать в него что хочешь "> Замечу, что добавлять его в автозагрузку не стал(Чтоб неосознанной каки не сделали), но это делается такде через реестр. вот еще оставляю исходник, Скачать
|
|
|
RE: Блокиратор Windows(Пример реализации на Delphi) - 2011-07-22 14:40:13.630000
|
|
|
TheZka
Сообщений: 6
Оценки: 0
Присоединился: 2011-06-30 19:33:53.040000
|
Ага, так ещё надо и кнопку "Win" заблокировать, ведь вызывается меню пуск, а там всё и выключить можно!
|
|
|
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
|
|
|
RE: Блокиратор Windows(Пример реализации на Delphi) - 2011-07-23 02:44:53.056666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Хотел написать, что символы надо фильтровать при вводе через KeyPress и про безопасный режим, но на фоне упомянутых косяков это уже ерунда)
|
|
|
|
|