Ae pessoal desenvolvi este códigozinho é básico é só pra entender como funciona um pouco.. é bem simples de se entender, desta vez eu não comentei... ;)
Código:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Button2: TButton;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Grava;
procedure Abre;
procedure Checa;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 : TForm1;
Reg : TRegistry;
Estado : String;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Grava;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.CreateKey('Software\Hacker Xtreme\Registro');
Reg.OpenKey('Software\Hacker Xtreme\Registro', False);
Reg.WriteString('Estado', '0AOBSX98KSPD');
Reg.CloseKey;
end;
procedure TForm1.Abre;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Hacker Xtreme\Registro', False);
Label3.Caption := Reg.ReadString('Estado');
Reg.CloseKey;
end;
procedure TForm1.Checa;
begin
if (Label3.Caption = '0AOBSX98KSPD') then
begin
Form2.ShowModal;
end
else
begin
Form1.Show;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Nome : String;
Serial : String;
begin
Nome := 'Xtreme';
Serial := '0156-8596-2457';
if (Edit2.Text = Nome) and (Edit1.Text = Serial) then
begin
Form1.Hide;
MessageBox(Application.Handle, 'Parabéns! Este software é original. Agora você poderá usa-lô por tempo ilimitado!', 'Original', MB_ICONINFORMATION+MB_OK);
Form2.Show;
Form1.Grava;
end
else
begin
Form1.Show;
MessageBox(Application.Handle, 'Nome ou Serial inválido. Tente novamente!', 'Pirata', MB_ICONERROR+MB_OK);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Clear;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Form1.Abre;
Form1.Checa;
end;
Coded by Xtreme
...by Xtreme
TGAXtreme, blx cara,
tenho uma dúvida, seguinte, qual a finalidade do Procedimento TForm1.Grava;?
Se o programa só funciona se :
Quote(Edit2.Text = Nome) & (Edit1.Text = Serial)
O procedimento Grava, apenas criar no registro um valor 'Estado' com os dados '0AOBSX98KSPD';
Mais não valida nada, bom pelo menos é o que eu endi.
Vlw..abraços..
bem simples, eu considero algo pra 1 iniciante bom, mais tipo, aconselho a nao usar isso no lado profissional, sendo simples descobrir, no caso era melhor usar criptografia num bd, tipo e outra, pra q criar chave no registro?, se no codigo tem uma parte q testa se a chave = 'tal', entao pq nao inserir nada no registro pra tornar mais logico, no caso usuario algo remoto pra testar senha se pudesse mudar , cadastrar etc, novas contas e no caso deveria utilizar um bd com suporte a criptografia.
Acho que seria interessante um do tipo que gere o serial de acordo com o nome da pessoa, igual os programas normais...
Flws...
quando o serial é valido ele grava akele valor, e com akeles dados, quando a aplicação é iniciada ele verifica se contém akeles dados, se tiver ele inicia sem pedir serial caso contrário não...