AV-SOFT
AVLock SIMPLE
Introducción
Que es AVLock SIMPLE?
Como adquirir AVLock SIMPLE?
Nuevo en v5.1
Usando AVLock SIMPLE
Como instalar AVLock SIMPLE?
Conceptos Básicos
Configuración
Usuarios e Instancias
Esquemas de protección
Ejemplos
Nuevo Estilo
Ejemplo 1
Ejemplo 2
Ejemplo 3
Ejemplo 4
Ejemplo 5
Request Key
UserData Based
Ejemplos PayPal IPN
Propiedades
Métodos
El Online License Manager (OLM)
Como's
La utilidad Configurator
La utilidad RegMonitor
La Utilidad KeyGen
La Utilidad CodeCheck
La Utilidad KeyCheck
Información adicional
Acuerdo de licencia
Historia de versiones_2

Ejemplo 2

Top  Previous  Next

 

Items

En este ejemplo aprenderá a

Esquemas de protección

Diagrama de flujo

Breve práctica con el ejemplo 2a

 

En este ejemplo aprenderá a:

1. Utilizar el componente AVLock SIMPLE en un esquema básico de protección (esquema B).

 

 

Esquemas de protección

Este ejemplo utiliza el esquema B

 

   Esquema B

layout02

 

Y lo implementa como se muestra en el siguiente diagrama de flujo:

 

 

 

Diagrama de flujo

 

demo02a01

procedure TForm1.FormCreate(Sender: TObject);

begin

 DoRegister(False);

end;

 

procedure TForm1.DoRegister(force:boolean);

var F : TRegForm;

begin

 F:=TRegForm.Create(nil); //Create the registration Form

 try

   if AVLockS51.IsLocal and (force or (keydata.DaysLeft < 15)) then F.ShowModal;

 finally

   FreeAndNil(F);

 end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

 special;

end;

 

procedure TForm1.special;

var F:TForm2;

begin

 if (keydata.Status = Registered) then begin

   F:=TForm2.Create(nil);

   try

     F.showmodal;

   finally

     freeandnil(F);

   end;

 end else showmessage('Special Features not allowed. Only available for registered users.');

end;

 

procedure TForm1.FormPaint(Sender: TObject);

begin

  { //commented in order to go ahead still at not registered status

  if (keydata.Status <> Registered) then begin

    showmessage('Not Registered');

    application.Terminate;

  end;

  }

 if (keydata.TooManyInstances) then begin

   showmessage('Too many instances');

   application.Terminate;

 end;

 if not AVLockS51.IsLocal and (AVLockS51.activeinstances.count < 2) then begin

   showmessage('This application must be run first from the server.');

   application.Terminate;

 end;

end;

 

El esquema es muy parecido al ejemplo 1, con los siguientes cambios:

 

1) Se ha eliminado del manejador del evento OnPaint la sección que terminaba la aplicación cuando no estaba registrado o el periodo autorizado había expirado y se agregó el procedimiento "special" que es ejecutado desde el botón "Button1" [Special Features].

 

2) También en GetRegStatus() se cambiaron las fuentes utilizadas para calcular el InstallCode, usando aquí el siguiente esquema:

 

   InstallCodeSources := Machine_Data;

   MachineSources := [System_UUID, HD_SN];

 

3) Además este ejemplo se configuró con el OLM Básico:

 

{$DEFINE BASIC_OLM} //Options are BASIC_OLM, ADVANCED_OLM, NO_OLM

 

Lo que se explicó sobre el parámetro "force" en el ejemplo 1 también tiene validez en este ejemplo.

 

La versión (2a) es la versión de desarrollo donde se agregaron botones utilitarios para iniciar el periodo trial y para borrar los datos de registración a fin de tener nuevamente la  aplicación en estado original.

La versión (2b) es la versión definitiva donde el periodo trial se inicia automáticamente y se retiraron los botones utilitarios.

 

 

Breve práctica con el ejemplo 2a

 

Desde el IDE de Delphi Abra el ejemplo 2a (\Examples\2\a)

 

demo02a02

 

Si lo cree necesario puede seguir los pasos del ejemplo anterior: ejecutar la aplicación, iniciar el periodo trial, borrar la registración, etc.