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.

Respuestas

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  1. hola amigo. he venido leyendo todo tu curso. aunque no tengo conocimientos de BVA estoy tratando de aprender. he realizado diversas consultas en tu pagina de excel general y me ha sido de gran ayuda. yo realice un proyecto con excel para controlar todos los aspectos de un torneo de billar, y por fin lo termine y gracias a su ayuda quedo muy bien (aun y que yo no conocia nada de excel). me llevo como 8 meses realizarlo, y estoy viendo la posiblidad de comercializarlo pero mi problema es como lo muestro sin que me lo pirateen. leyendo este articulo, creo que es una buena solucion. pro tengo unas dudas. primero: es este archivo suseptible a el programa crackloc?. segundo manipulando los codigos BVA se puede crackear?. espero me puedas aclarar mi duda. gracias por tu tiempo y felicitaciones por tus logros.
  2. Samuel, la seguridad absoluta antipirateo no existe. Se lo puedes poner muy difícil a los hackers, pero las soluciones que ofrece VBA no asegura al 100% el proyecto.

  3. Quisiera saber como podría buscar los datos de un textbox1, y que al pulsar un botón los datos encontrados en la base de datos me las muestre en diferentes textbox…..
  4. hola sergio ¡¡¡¡ estoy tratando de utilizar tu archivo (espero no te moleste), para adaptarlo a mi libro. modifique los userform con imágenes alusivas a mi archivo y aparentemente funciona bien. solo tengo unas dudas. se supone que cuando el usuario decide comprar el programa le da click en el comando de adquirir clave, y en el código veo que te envía a una dirección url, (www.ayudaexcel.com). pero si yo no tengo sitio web. puedo cambiar el mensaje poniendo mi correo electronico?. u otra duda es que el generador de contraseñas antepone la palabra “aexcl”, si cambiara esta palabra causaria algun problema?. gracias por tu tiempo y tu paciencia. !!! saludos y exito ¡¡¡¡
  5. Claro, Samuel, sólo debes sustituir el enlace por mailto:tu_dirección_de_correo. También puedes modificar el principio de la contraseña. Pulsa Alt+F11 para acceder al editor de Visual Basic y después Ctrl+F para buscar. A continuación busca la expresión aexcl (en todo el proyecto) y sustituyela por los caracteres que quieras.

  6. ok. ya casi termino de adaptarlo. solo que me atore en la macro de el boton de “adquirir clave de adquisicion” . hay manera de omitir este paso y solo poner un mensaje que diga algo asi: “si le interesa este programa. envie un correao a : (mi correo). y ya habiéndonos puesto de-acuerdo. le envie via email su contraseña (que yo generare con su correo electronico en el generador de contraseñas. mi duda es si no se interrumpe algun codigo o que me marque error. seria mucha molestia de explicarme como modificar este codigo?. gracias por ayuda y paciencia
  7. He intentado implementar tu codigo amigo y me queda una duda, una vez que se hace el registro como puedo eliminar esa clave de ese equipo.
    supongamos que el cliente registro en un equipo y ese equipo ya no lo usar para el software usara otro lo ideal seria quitar el registro de ese equipo.

  8. Hola que aportes tan magnificos los tuyos, me quito el sombrero, pero por sobre todo por ser tan generoso de compartir tu conocimiento y trabajo con quienes no sabemos nada de esto.
    Me considero usuario entendido del Excel pero a la hora del VisualBasic son un completo ignorante. Podrias por favor recomendarme donde puedo hacerme todo un experto mediante autoaprendizaje? sabes de tutoriales o cursos que puedas recomendarme por favor? Mil gracias de nuevo
  9. Juan, me alegra que te gusten los artículos que publico, sobre todo si te son útiles.

    Un recurso muy bueno para aprender VBA de forma gratuita, lo puedes encontrar en Youtube. Hay cursos completos divididos en varios vídeos, que merecen la pena verlos.

    Y para hacer algo de autopromoción, te diré que en el foro de Ayuda Excel también puedes mucho sobre VBA a través de casos prácticos que plantean los demás usuarios.

  10. Muchas gracias por aceptar mis comentarios y sobre todo por sacar el ratito para responderlo. He estado trabajando en un libro que en inicio era para mi uso personal, pero ya hay varias personas que se han interesado y quisieran que se los diera, yo prefiero hacerlo pero con la opcion deprueba que tu aca presentas. Sin ser experto ya he pasado los modulos y formularios tuyos, con tu venia obviamente, lo unico que no he podido resolver por ahora es lo de poner la opcion que me escriban un correo si quieren la clave de instalacion, se que ya mencionaste algo al respecto pero la verdad no pude hacerlo y me sale un error de compilacion o error de sintaxis, no se que estare haciendo al al reemplazar lo del link por el mailto: Podrias por facho echarme un manito y perdona la molestia, gracias de antemano, Un Abrazo
  11. Juan, echa un vistazo al siguiente código:

    Private Declare Function ShellExecute& Lib “shell32.dll” _
    Alias “ShellExecuteA” (ByVal hWnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long)

    Const SW_SHOWNORMAL = 1

    Private Sub lblEmail_Click()
    ‘ Label’s caption is the email address:
    Dim szEmailAddy As String
    szEmailAddy = Me.lblEmail.Caption

    ShellExecute 0&, “open”, “mailto:” & szEmailAddy, _
    vbNullString, vbNullString, SW_SHOWNORMAL

    Unload Me
    End Sub

  12. Buena tarde

    Me interesa este tema pero no me permite descargar los 2 archivos, me gustaría saber si me puede indicar donde los puedo descargar, ya que deseo poder aplicarlos a mis proyectos.