Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Пароль на доступ в файл

Если Вы создали крутую вещицу и хотите сшибать за неё бабки, то самое время позаботиться об авторском праве. Вы можете и не давать общий доступ к вашей проге, выводя вначале запуска окно с милым и невинным предложением ввести пароль...
Начинаем создание нового приложение командой “New Application” (“Новое приложение”) из меню “File” (“Файл”)
Добавьте ещё одну форму: “New Form”(“Новая форма”) из меню “File” (“Файл”). Это окно будет диалогом с вводом пароля. Чтобы сделать ‘это окно диалоговым, нужно его свойство “BorderStyle” установить в “bsDialog”. Заголовок окна будет, например, таким: “Идентификация пользователя”. Выносим на него поле ввода – Edit. Свойство Text его очищаем, а в свойстве “PasswordChar” ставим “*” – звёздочку. Теперь всё, что будет вводить пользователь, будет отображаться таким символом!
Выносим в форму метку – компонент Label. Устанавливаем её над Edit’ом. В заголовке метки пишем что-нибудь типа: “Введите пароль”.
Кнопки возьмём с закладки Additional - компоненты класса TBitBtn. С помощью их свойства Kind одну кнопку сделаем “Ok”, а другую – “Cancel”. Ну вот, круто!
Теперь попытайтесь запустить приложение на выполнение (из меню “Run“(“Пуск”) команда “Run”(“Пуск”))... но, вот, незадача... вместо созданного окна для ввода пароля вначале появилась Form1. Почему? Потому, что это окно главное! Чтобы сделать главной вторую форму, нужно в меню “Project” (“Проект”) выбрать команду “Options”(“Опции”). Зайти на закладку “Forms”(“Формы”) и в выпадающем списке “Main form”(“Основная”) указать "Form2". Если запустить теперь всё будет работать правильно.
Теперь нужно написать код по нажатию на кнопку “Cancel”: Application.Terminate;
В событии по нажатию на кнопке “Ok” нужно сначала сопоставить текст, находящийся в поле ввода с тем ключевым словом, которое Вы хотите использовать в качестве пароля. У нас паролем будет число "1522" Если совпадение будет полное, тогда мы выведем первую форму, что так тщательно скрываем от всеобъемлющего взора пользователя, иначе будет осуществлён выход. Но главное это то, что нам сначала нужно установить взаимосвязь между модулями, потому, что если даже пользователь введёт правильный пароль, мы не сможем вывести Form1, находящуюся в Unit1, из Unit2. Связываем модули так: в главном модуле (в Unit2) объявляем используемый модуль (Unit1) в области uses. Выглядеть это должно примерно так: uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Unit1;
А в используемом модуле объявляем - главный, но после ключевого слова implementation. Так как слова uses здесь нет, поэтому пишем так:
uses Unit2;
Теперь можно смело писать код по нажатию на кнопке “Ok” (У меня она названа по умолчанию - BitBtn1):
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if Edit1.Text='1522' then begin
Form1.Show;
end
else begin
MessageDlg('Введён неправильный пароль!',mtWarning,[mbOk],0);
Application.Terminate;
end;
end;
Теперь если мы запустим, то убедимся, что кнопки работают безотказно, но по появлению Form1 вторая форма не исчезает. Избавиться от этого можно описав следующим образом событие “OnShow” – на появление – для окна Form1: Form2.Hide;
И, наконец, самый главный недостаток – это то, что мы теперь, выходя из Form1, не можем осуществить полный выход из приложения. Но отчаиваться не стоит, так как нет безвыходных ситуаций! Нужно по выходу из Form1 (событие OnClose) осуществить полный выход из программы с помощью следующего кода: Application.Terminate;
Теперь всё готово! Можно поглумиться над неопытным пользователем, тщетно пытающимся взломать нашу защиту!




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS