![]() |
Как создать shareware защиту?Источник: snakesoft
В этой статье мы поговорим о том как создать программу,в которой после регистрации (ввода лицензионного ключа) - отображаются скрытые возможности. Немного о том как работает защита...К примеру:кнопка "открыть cd-rom" недоступна чтобы она стала доступной нужно ввести регистрационный код.Мы нажимаем на "регистрация" появляется поле где мы вводим пароль. При нажатии на кнопку OK программа сохраняет то что мы набрали в реестре. При своем запуске программа считывает то что мы написали в реестре(т.е. пароль введенный ранее)и если он совпадаеи с тем который мы указали,тогда кнопка становится активной.В противном случае,кнопка остается неактивной. Итак делаем: 1).-запускаем полюбившийся нам делфи. 2).-создаем новый проект. 3). caption=shareware width:=242 height:=140 BorderStyle=bsSingle Position=poScreenCenter uses=mmsystem,registry; 4).Создаем 3 кнопки:button1,button2,button3 и текстовое поле edit1 button1.caption=Регистрация
button2.caption=Открыть cd-rom
button1.caption=Выйти
edit1.text='snake software'//это код регистрации
edit1.text.visible:=False; //делаем текстовое поле невидимым
button2.enabled:=False //делаем неактивной кнопку "открыть cd-rom"
---------------------------------------------------------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
mciSendString('Set cdaudio door open wait',
nil, 0, Form1.Handle);
end;
--------------------------------------------------------------------
procedure TForm1.Button3Click(Sender: TObject);
begin
Halt;
end;
-------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
form1.Hide;
end;
-------------------------------------------------------------------
5).Создаем вторую форму. caption=registration width:=234 height:=75 BorderStyle=bsSingle Position=poScreenCenter uses=registry; 6).Создаем кнопку(button1),и поле для ввода текста(edit1) button1.caption=ok 7).на событие кнопки onclick пишем: var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if Reg.OpenKey('\Micr.I1\CLSID', True) then
begin
Reg.WriteString('tr',edit1.text);
Reg.CloseKey;
end;
finally
Reg.Free;
MessageDlg('Ща проверим!',mtInformation,[mbOk],0);
inherited;
end;
HALT;
end;
8).Возвращаемся к нашей Form1(первой форме).В вверху в var пишем pwd:string; На событие формы oncreate пишем: var
Reg:TRegistry;
begin
try
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CLASSES_ROOT;
{False because we do not want to create it if it doesn't exist}
Reg.OpenKey('\Micr.I1\CLSID',False);
pwd:=Reg.ReadString('tr');
finally
Reg.Free;
end;
if pwd=edit1.Text then
begin
button2.Enabled:=True;
end;
|