Bloquear base de datos en access al trascurrir cierto tiempo

Alguien por favor sabe como colocar una base de access que funcione cierto tiempo o cierta cantidad de aperturas, se bloquee y pida password para reactivarla.

Hacer como si fuera una version demo, ya que es para una empresa y si les gusta se les daría el código para activarla.

Respuesta
1

Por ejemplo, en el archivo principal crea una tabla con un campo numérico. Cada vez que arranque el programa que acumule uno al número que hay en ese campo, y que por código hayas decidido que al llegar a 50, por ejemplo, sea el tope.

Puedes tener otra tabla que contenga los códigos de activación del software con un campo password de, digamos, 64 caracteres, ni uno más ni uno menos, y en el que el código esté formado por cifras y letras, y que de algún modo haya que cuadrar, como los dígitos de control de una cuenta bancaria.

Cuando tu cliente te compra el programa le pasas el código, y pones una opción en el programa que permita entrar ese código.

Basta con que al arrancar, si el código es correcto, no acumule el contador o lo ponga a cero, y si no es correcto, o no existe, acumule.

Aunque es posible que si alguien se pone a hurgar pueda "desmontarte el chiringuito", parto de la base de que el archivo principal está compilado, y la base de datos codificada, por lo que se complicaría algo más el acceso a los datos.

Es una idea, la primera que se me ocurrió, a vuelapluma.

El problema que le veo yo a la fecha de caducidad es que cada vez que tienes que mostrar una demo, o dar una demo, o dejar descargar una demo en tu web, tienes que estar al tanto y preocuparte de que la fecha sea la correcta.

Se me ocurre otra opción.

La primera vez que se ejecute el programa, haz que se guarde la fecha, no necesariamente la fecha, sino, por ejemplo la juliana de la fecha junto con un código de año, por ejemplo el año al revés (2015 -> 51) y después el día más un número de control en una posición determinada. Por ejemplo, el 1 de febrero de 2015 sería 51032, y el código de control D lo pones entre el año y la juliana, 51X032.

El cálculo del DC te lo dejo a tu imaginación.

Lo guardas en un archivo en la misma carpeta o en una carpeta aparte. Para más seguridad, graba el archivo en formato binario, y hazlo oculto, así como la carpeta que lo contiene, y cada vez que alguien ejecute nuevamente el programa, lee el archivo para saber cuantos días lleva.

Está claro que si alguien quiere reventarte el software lo hará, pero será un poco más difícil.

2 respuestas más de otros expertos

Respuesta
1

Independientemente de la excelente respuesta de Tomás, y por más abundar, si lo que quieres es proteger la BD con un sistema de tiempo (que sólo se pueda utilizar durante los días que fijes) puedes echarle un vistazo a este ejemplo: http://glurl.co/hcb

http://neckkito.siliconproject.com.ar/ 

Respuesta
1

La respuesta de Tomas es excelente... sin embargo, si te topas con personas que sepan un poco de access correrías el riesgo de que te modifiquen los valores que están en las tablas a conveniencia y así perderías tu proyecto.

Lo mejor es como propone Neckitto, ponerle una fecha de caducidad contenida en el código vba, así será imposible que la modifiquen...

Normalmente yo hago lo siguiente:

1) Inserto un módulo vba o puedes usar uno existente.

2) Creas la función de expiración algo así:

Public Function ExpiraPrograma()

If date> #01/01/2015# then

msgbox "El programa ha expirado, por favor solicite una versión completa al Teléfono xxxxxxxxx o al correo [email protected]"

docmd.quit

End If

End Function

3) Llamas la función desde los formularios principales, así evitas que alguien se salte el formulario de inicio y pueda correrlo sin problemas. La llamas así :

Private Sub Form_Load()

Call ExpiraPrograma

End Sub

Nota: Debes hacer pruebas con la fecha ya que según el formato de la computadora asi variará si usas mm/dd/aa o dd/mm/aa, haz las pruebas cambiando la fecha de tu computadora hasta que quede como quieres.

A todo muchas gracias por su aporte, le que he podido aprender a través de mi poca trayectoria con Access, es que al mover la fecha del computador se pueden hacer maravillas.

Creo que lo más conveniente es crear en vba un contador de apertura y bloquear hasta n aperturas, claro que tanto la estructura como el código deben ser protegidos, para evitar que terceros accedan tan fácilmente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas