Aplicación para crear libros de prueba

Llevaba bastante tiempo buscando una utilidad que me permitiera publicar un libro de Excel en internet para que otros usuarios lo evaluaran durante un periodo de tiempo. Parece que he conseguido crear un programa (con un poco de ayuda documental) que ha

Esta utilidad le permite a cualquier desarrollador, la creación de libros con funcionalidad completa con total garantía de destrucción si en un periodo establecido, no se introducen las claves correspondientes.

La aplicación funciona de la siguiente manera:

La interfaz del usuario

Cuando el usuario recibe o descarga el archivo, se le muestra la siguiente pantalla:

pantalla inicial Excel

Si hace clic en Continuar evaluación, podrá disfrutar del libro de Excel sin ninguna restricción por un periodo de 30 días. Este mensaje se mostrará cada vez que abra de nuevo el archivo.

Si por el contrario, el usuario compra una licencia, debería pulsar en el botón Registrar. En este caso, se le pedirán los datos del registro:

Registro clave acceso excel

Si el correo electrónico y la clave de registro se introducen correctamente, el libro de Excel se desbloquea permitiendo al usuario utilizarlo libremente, ocultando permanentemente los cuadros de mensaje de la utilidad. En caso contrario, tiene la posibilidad de intentarlo de nuevo o de cancelar la apertura del libro, cerrando con ello el archivo:

clave no valida excel

La parte de programación

El “backstage” de esta aplicación es un poco más complejo, pero trataré de explicarla:

Al abrir el archivo, el evento Open del libro, hace que se bloquéen todas las hojas (de esta forma me aseguro de que si el usuario pulsó en el botón Continuar evaluación hace más tiempo del permitido, no pueda seguir utilizándolo).

Una vez que las hojas están protegidas, busca en el registro de Windows, algún rastro de la aplicación. Si no encuentra nada, se generan unas claves encriptadas con la fecha y la hora de la primera ejecución  y de la finalización de la prueba y se guardan en el registro de Windows.

SaveSetting appname:=App, Section:="Class", Key:="iD", _
    setting:=proteccion.EnCrypt(Now())
SaveSetting appname:=App, Section:="Class", Key:="eD", _
    setting:=proteccion.EnCrypt(Now() + 30)
SaveSetting appname:=App, Section:="Class", Key:="Key", setting:="mt"

A continuación se le pregunta al usuario si desea seguir con la versión de prueba o registrar el libro de Excel.

Si selecciona la opción de continuar con la prueba, se comparan las fechas que se guardaron en el registro, para validarlas. Si no se supera la validación, el libro se inutiliza o se cierra. Si se encuentra dentro de las fechas permitidas, el libro se desbloquea.

En caso de que el usuario opte por registrar la aplicación, aparece el formulario para introducir los datos.

El dato que se introduce en el campo del correo electrónico, genera una secuencia aleatoria y de longitud variable de caracteres. Unas determinadas posiciones dentro de esta secuencia deben coincidir con los caracteres que el usuario introduce como Clave. Como es de esperar, se validan los datos.

Si los datos introducidos son válidos, la clave se guarda en el registro de Windows para verificarla cuando se abra de nuevo el archivo.

Atención: Los únicos datos que se guardan en el registro son: las fechas de inicio y de finalización de la prueba (encriptadas), la clave introducida (encriptada) en caso de que el usuario disponga de una y la secuencia aleatoria que genera el correo electrónico. Los correos electrónicos no se guardan.

Adjunto dos archivos. La propia aplicación y el archivo que genera las claves. Ambos sin proteger para que puedas verlos por dentro.

demo
Título: demo (136 clics)
Tamaño: 42 KB
generador_contrasenas
Título: generador_contrasenas (119 clics)
Tamaño: 15 KB

Sergio

Sergio

La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios.
Ebook De 0 a 100 con macros y VBA

De 0 a 100 con macros y VBA

Esta oferta no es para siempre...

¡no la desaproveches!