Sobre Trial

Hola, tengo una aplicación desarrollada en pb 7.0 y necesito hacer una versión trial de esta para utilizarla con fines de publicidad, pero no se como (o con que herramient)a se hace.
Desde ya agradezco cualquier sugerencia.
Gracias.
Hernán.
Respuesta
1
Las versiones de pruebas realmente lo que hacen es comprobar algún tipo de dato ( como la fecha del sistema, el número de serie, etc..) y al hacer el open de la aplicación comprobar ese valor.
Puedes hacer algo sencillo como comprobar la fecha del sistema y dejar solo 30 días.
En el evento open del objeto aplicación pon lo siguiente:
Boolean lb_retorno
// Comprobamos si está en periodo de prueba
lb_Retorno = of_trial()
// abrimos la aplicación
if lb_retorno then
open(w_ventana_inicial)
else
halt close
end if
Ahora nos generamos una función en el objeto aplicación que retorna un boolean y se llama of_trial()
boolean lb_Retorno
Date ldt_hoy, ldt_fecha_inst
integer li_registro
string ls_serie, ls_fecha, ls_fecha_a_probar
ldt_hoy = Today()
ls_fecha = String(ldt_hoy,'yyyymmdd')
li_registro = RegistryGet ( 'HKEY_LOCAL_MACHINE\Software\miaplicacion', 'numserie', RegString!, ls_serie)
if li_registro = -1 then
// No hemos guardado el número de serie
ls_serie = '98667' + ls_fecha + '6673KJU'
// Nota: lo de 98667 y 6673KJU son para despistar, porque realmente lo que vamos a evaluar es la fecha
RegistrySet ( 'HKEY_LOCAL_MACHINE\Software\miaplicacion', 'numserie', RegString!, ls_serie)
lb_retorno = true
else
// Cogemos la fecha que habiamos ocultado en el número de serie
ls_fecha_a_probar = Mid(ls_serie,6,8)
ldt_fecha_inst = date(Integer(Mid(ls_fecha_a_probar,1,4),Integer(Mid(ls_fecha_a_probar,5,2),Integer(Mid(ls_fecha_a_probar,7,2))
if DaysAfter(ldt_fecha_inst, ldt_fecha_hoy) > 30 then
MessageBox("Aviso","Ha pasado el periodo de evaluación de 30 dias.")
lb_retorno = false
end if
end if
Return lb_retorno
Es simple pero más o menos efectivo, si cambiamos la fecha del sistema nos saltamos lo de la evaluación, pero para empezar no está mal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas