|
EJEMPLO 6
Items
En este ejemplo aprenderá a
Esquemas de protección
Diagrama de flujo
Breve práctica con el ejemplo 6a
Iniciar el periodo trial
Utilizar el panel de control del OLM
En este ejemplo aprenderá a:
1. Utilizar el componente AVLock SIMPLE en un esquema de protección con múltiples módulos (esquemas D, E y F).
2. Utilizar el panel de control del OLM para manejar licencias en linea.
Esquemas de protección
Este ejemplo implementa los esquemas D, E y F
Esquema D

|
Esquema E

|
Esquema F

|
El único cambio respecto del ejemplo 5 es que aquí se utiliza el OLM avanzado.
Y los implementa como se muestra en el siguiente diagrama de flujo:
Diagrama de flujo

|
procedure TForm1.FormCreate(Sender: TObject);
begin
DoRegister(False);
end;
function TForm1.maxrecords(n:integer):string;
begin
case n of
0: result:='50';
1: result:='200';
2: result:='1000';
3: result:='5000';
4: result:='20000';
5: result:='100000';
else result := 'Unlimited';
end;
end;
procedure TForm1.DoRegister(force:boolean);
var F : TRegForm;
begin
F:=TRegForm.Create(nil); //Create the registration Form
try
if force or (keydata.DaysLeft < 15) then F.ShowModal;
finally
FreeAndNil(F);
end;
if (keydata.Status = Registered) then begin
maxrec:=maxrecords(Values2Num(keydata.Values,2));
Button1.Enabled := (IsValueOn(keydata.Values,3,0));
Button2.Enabled := (IsValueOn(keydata.Values,3,1));
Button3.Enabled := (IsValueOn(keydata.Values,3,2));
end else begin
maxrec := '50';
Button1.Enabled := False;
Button2.Enabled := False;
Button3.Enabled := False;
Form1.wait(10);
end;
LRecNo.Caption := maxrec;
end;
|
La versión (6a) 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 (6b) 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 6a
Desde el IDE de Delphi Abra el ejemplo 6a (\Examples\6\a)
Ejecutar la aplicación
Presione el botón o F9 para iniciar la ejecución del programa. En unos instantes podrá ver el formulario de registración:

Note que el estado corriente de registración es "Not registered" (No registrado). Esto es debido a que se ejecutó por primera vez el programa y en las versiones (a) de desarrollo no se inicia automáticamente el periodo trial.
Ahora con el botón [Continue >>], como la aplicación no está registrada se muestra la pantalla Wait con la cuenta regresiva:

Esta pantalla también se mostrará al hacer click sobre el botón [Free Features] del formulario principal.
Ahora tenemos tres alternativas para iniciar el periodo trial:
a) Método fuera de linea. Utilizando el método MakeTrial() mediante el botón [Start Trial with MakeTrial()].
b) Método en linea. Utilizando el OLM avanzado con el botón [Start with Advanced OLM] que utiliza el método OnlineStartTrial().
c) Método en linea. Método alternativo agregado en la versión 4: con el botón [Synchronize] que utiliza el método Synchronize().
El demo está configurado para acceder al sitio www.av-soft.com que podrá utilizar para hacer las prácticas.
Iniciar el periodo trial
Item relacionado: Como iniciar el periodo trial
Igual que en el ejemplo anterior tiene las casillas de chequeo para seleccionar los módulos que desea habilitar durante el periodo trial y un "combo box" donde seleccionar el número de registros que se permitirán.
Para probar seleccione Special 1, 2 y 3 y 100000 registros. Haga click sobre el botón [Start with Advanced OLM] y verá el siguiente cuadro de mensaje informando el resultado de la operación, "Trial iniciado" :
Además podrá ver que el estado corriente de registración ha cambiado mostrando el mensaje que puede ver abajo:

Si ahora hace click sobre el botón [Continue >>] pasará al formulario principal de la aplicación donde verá el resultado de la operación realizada, (ahora sin pasar por la pantalla Wait):

Puede ver que se habilitaron los botones correspondientes a las casillas de chequeo seleccionadas y también se estableció en 100000 el numero máximo de registros permitidos.
Con el botón [Show Registration Data] vea los datos de registración:

Veamos un poco el codigo fuente utilizado para calcular el valor del campo Values en base a las casillas de chequeo seleccionadas:
function TRegForm.values:string;
var val: word;
begin
val:=0;
if ch1.Checked then val := 1;
if ch2.Checked then val := val + 2;
if ch3.Checked then val := val + 4;
result := inttohex(val,3);
end;
Sobre la variable val se calcula el valor que luego será asignado al campo Values.
Si "Special 1" está chequeado se agrega 1 a val 1 = 0001 en binario
Si "Special 2" está chequeado se agrega 2 a val 2 = 0010 en binario
Si "Special 3" está chequeado se agrega 4 a val 4 = 0100 en binario
Al chequear las casillas "Special 1", "Special 2" y "Special 3" obtenemos (1 + 2 + 4) = 7
Visto en formato binario:
Special 1 = 0001
Special 2 = 0010
Special 3 = 0100
-------
Suma = 0111
Ahora veamos el código fuente del cálculo del número de registros permitidos:
function TForm1.maxrecords(n:integer):string;
begin
case n of
0: result:='50';
1: result:='200';
2: result:='1000';
3: result:='5000';
4: result:='20000';
5: result:='100000'; //<---
else result := 'Unlimited';
end;
end;
. . .
maxrec:=maxrecords(Values2Num(F.keydata.Values,2));
. . .
La función Values2Num() extrae del campo Values el nibble seleccionado y lo convierte a valor decimal.
Utilizar el panel de control del OLM
Item relacionado: Como registrar la aplicación utilizando claves
Ahora accedamos al panel de control del OLM desde un navegador (Este ha sido probado con Google Chrome, Firefox, Opera e Internet Explorer).
Ingresemos la URL: http://av-soft/olm3/s3cp.php
En unos segundos veremos la pantalla que se ve abajo. Ingresemos la password abc123 y hagamos click sobre el botón[-> Go]:

Veremos la pantalla de abajo. Ingresemos 12306 para "search for", seleccionemos el campo "App ID" y hagamos click sobre el botón [-> Go] y se desplegarán los registros que coincidan con el AppID ingresado:

Ahora hagamos click sobre el icono Edit y pasaremos al siguiente cuadro de edición:

Aquí tenemos varias secciones:
Datos no modificables: Son los datos del registro que no se pueden modificar.
Datos del usuario: Nombre, Compañía y email.
Selección de la acción a tomar: Se puede seleccionar una acción a tomar cuando se solicite una sincronización de datos con el método Synchronize().
(1) do not change segistration status: Si se selecciona esta opción no se generará una nueva clave y los campos Moved, Exten y Paid se harán igual a 'N'.
(2) License is being moved to another computer: Asignar el campo Moved = 'Y'. Indicando que la licencia de este registro está siendo movida a otro computador.
(3) Allow to extend the trial period: Asignar el campo Exten = 'Y' para autorizar la generación de una nueva clave que extienda el periodo trial por un periodo adicional, normalmente 15 días, pero se puede cambiar asignando otro valor a la variable $extendays en el script genkeys3lib.php.
(4) The user paid for a new values field: Asignar el campo Paid = y (y minúscula) indicando que se debe generar una nueva clave tomando como base la clave vigente actual donde se cambiará solo el campo values de la misma. Util con claves temporales para el caso en que se quiera agregar o quitar un módulo controlado por el campo values o cambiar otra condición controlada por el campo values como ser el numero de registros autorizados pero mantener el mismo periodo autorizado por la clave temporal vigente.
(5) The user paid for a new key: Asignar el campo Paid = 'Y'. El usuario ha pagado por una nueva clave por lo que deberá generarse una nueva clave en base a los datos que se especificarán en la sección de abajo.
Datos para la nueva clave a generarse: Aquí se asignan los datos que se utilizarán cuando se cree la nueva clave cuando el campo Paid sea igual a 'Y'.
Campo Users: Cantidad de usuarios que podrán registrarse utilizando la misma clave, uno como primario y el resto como usuarios secundarios. se puede asignar un número en el rango [1..254].
Campo Instances: Determina el numero máximo de instancias que se podrán ejecutar en cada computador registrado.
Campo Values: Campo values de la clave a generar. Ya se explicó más arriba como utilizar este campo.
Campo Days: Campo days de la clave a generar. En claves temporales determina el periodo de días autorizados, el valor debe estar en el rango [1..65534]. Para claves permanentes se asigna automáticamente con 65535.
Botones operativos:
[Delete record]: Elimina el registro corriente. No habilitado en av-soft.com.
[Save Record]: Modifica los datos del registro con los datos ingresados en el formulario.
[Cancel]: Cierra el cuadro sin modificar el registro.
Como práctica con esta pantalla ingresemos los siguientes datos como se muestra en la imagen abajo:

Después hacemos click sobre el botón [Save Record] y veremos el siguiente mensaje indicando que el registro ha sido modificado:

Hacemos click en aceptar y volvemos a la pantalla del panel de control. Refresquemos la pantalla con el botón [->Go] del panel de control y veremos el registro modificado:

Ahora podemos hacer click sobre el botón [Synchronize] del formulario de registración

Esto va a generar y registrar una nueva clave, en el OLM y localmente. Vea el estado de registración abajo:

y volviendo con [Continue >>] al form principal veremos los cambios realizados que dependen del campo Values:

|