** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Tus Funciones Favoritas & Aportaciones & Artí­culos
  Mensajes nuevos Mensajes nuevos RSS - Proteccion Programas con Caducidad
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Proteccion Programas con Caducidad

 Responder Responder
Autor
Mensaje
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4812
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Proteccion Programas con Caducidad
    Enviado: 10/Diciembre/2020 a las 21:47
PROTECCIÓN PROGRAMAS CON CADUCIDAD

Hay ciertos programas que basan su seguridad en la fecha de caducidad, limitando el uso del programa a una cierta cantidad de días.........

Desde hace bastante tiempo los ordenadores ajustan de forma automática el reloj del PC con el tiempo de un servidor de Internet.

Peroooooo  ¿ Qué pasaría si algún usuario malicioso quitase esa configuración y/o además No tuviese pila en su PC o estuviese dañada ?


La siguiente rutina evita ese hipotético caso



Private Function funTest()

    If funRelojCorrecto() = False Then
        MsgBox "Error: Tienes el TIEMPO parado en tu PC y este programa No puede seguir", vbExclamation, "Error"

        Access.Application.DoCmd.Quit
        Exit Function
        
        Else
        
        MsgBox "Bien el control del tiempo esta verificado", vbInformation, "Tiempo"

    End If

End Function


Private Function funRelojCorrecto() As Boolean
    On Error GoTo Err_Local
    '---------------------------------------------------------------------------------------
    ' Procedimiento: funRelojCorrecto
    ' Fecha: 10/12/2020
    ' Autor: Javier Gomez ("Javier.Mil")
    ' Email: accessdemo@hotmail.com
    ' WEB: www.accessdemo.info
    ' Proposito: Control del tiempo verificando si el reloj esta parado del PC , utilizando la instrucción nativa de Access TIME
    '---------------------------------------------------------------------------------------


    Dim datTiempoStart As Date
    Dim datTiempoFinnish As Date
    Dim lngX As Long


    DoCmd.Hourglass True
    datTiempoStart = Time

    For lngX = 1 To 10 ^ 5
        Rem En caso de SI tener parado el reloj del PC TIME tardaría unos +/-25 Segundos en salir de este Loop
        Rem En caso de No tener parado el reloj del PC el TIME tardaría 1 segundo en salir del LOOP

        DoEvents

        If datTiempoStart <> Time Then
            Exit For
        End If

    Next lngX

    datTiempoFinnish = Time
    DoCmd.Hourglass False


    '    MsgBox "FIN"
    '    MsgBox "Total ha tardado=  " & Format(dtmTiempoFinnish - dtmTiempoStart, "hh:mm:ss")

    If datTiempoFinnish - datTiempoStart = 0 Then
        funRelojCorrecto = False
    Else
        funRelojCorrecto = True
    End If



Exit_Local:
    DoCmd.Hourglass False
    On Error GoTo 0
    Exit Function

Err_Local:
    funRelojCorrecto = False
    MsgBox Err.Description, vbCritical, "Error N°:  " & Err.Number
    Resume Next

End Function


Arriba
JuanW Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 12/Mayo/2005
Localización: España
Estado: en línea
Puntos: 259
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita JuanW Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Diciembre/2020 a las 10:23
Yo a esto le añadiría para evitar que se cambie la hora, digamos un año anterior, para evitar la limitación del tiempo de licencia.
Podría ser un campo con la fecha/hora de la última utilización de la aplicación. Obviamente debería estar suficientemenete "oculto"....
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Diciembre/2020 a las 10:36
+1.

Lo suyo sería guardar la fecha/hora de última ejecución y no permitir nada raro.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4812
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Diciembre/2020 a las 18:45
Esta rutina No pretende controlar todas y cada una de las distintas maneras existentes para evitar saltarse la fecha de caducidad de los programas, esta rutina solo aporta un granito de arena , ..... para un caso de uso muy muy especifico , es decir cuando el RELOJ del pc No funciona de forma intencionada o No .... Creo que lo suyo seria confirmar antes con un servidor externo de fecha/ hora en Internet  .... hay muchos...

JuanW: Poner la limitación a un año No , No sirve de mucho ... Guardar la información de la fecha en una tabla tampoco, hay mil manera para saltarse eso , ....... hacerlo oculto es reversible, con que la esa opción tampoco serviría para muchos usuarios ....

Mihura: Comparto contigo que esa es una buena opción peroooo hay que hacerlo muy bien , es decir si por algún motivo después de entrar al programa se modificara la hora/fecha (debido a que es incorrecta) seria posible que te imposibilitase volver a entrar al programa ........  


Repito: La intención de esta rutina No es controlar todas las distintas variantes sobre el control de fecha de caducidad de un programa , solo es un caso muy especifico  de uso.


.
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4812
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Diciembre/2020 a las 20:20
Solo añadir que después de realizar distintas pruebas "manipulando" intencionadamente la fecha de Windows (poniendo una fecha anterior a la real) y trabajando sobre Access 365 aparecen distintos mensajes de Error del propio core de Access, ademas Access se abre en "Solo Lectura" y encima se comporta de forma impredecible , cerrandonse a su antojo ,.......

En fin que creo Access 365  controla cada vez que lanzas una aplicación Access

Estos son algunos de los mensajes de  (cuando la fecha de Windows esta mal)



Error Fecha Windows






Otro Mensaje  ( Abre Access en formato solo Lectura)

Error Fecha Windows


Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Diciembre/2020 a las 21:04
¿Esta en cloud? ... porque tiene pinta de que el se queja es el almacenamiento en la nube, ... encontrará el mismo Id interno con distinta fecha y te manda p'a Burgos, por si acaso.

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4812
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Diciembre/2020 a las 23:08
No no esta en Cloud lo tengo en un PC en local ,........ creo que Access 365 hace comprobación cada vez entras en Access la la fecha de ultimo acceso......

Hice la siguiente prueba

Desconecto Internet >> Cambio fecha de Windows >> Entro a Access >> voila Access detecta que No tiene Internet (en algún sitio se debe haber guardado la fecha del ultimo acceso) y empieza los los mensajes de fichero de Solo lectura , Volverse a inicializar sesión en Office ,.......  cierre inesperado de la aplicación ete etc....


Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4812
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Diciembre/2020 a las 23:14
Publicado originalmente por Mihura Mihura escribió:

+1.

Lo suyo sería guardar la fecha/hora de última ejecución y no permitir nada raro.


El problema que le veo aqui , es que algun usuario astuto No entre en la aplicacion , primero cambia la fecha del PC o Windows y despues entra ,...... y entonces puede tener dias , mese o años extra  ....
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 22/Diciembre/2020 a las 08:49
Publicado originalmente por javier.mil javier.mil escribió:

No no esta en Cloud lo tengo en un PC en local ,........ creo que Access 365 hace comprobación cada vez entras en Access la la fecha de ultimo acceso......

Hice la siguiente prueba

Desconecto Internet >> Cambio fecha de Windows >> Entro a Access >> voila Access detecta que No tiene Internet (en algún sitio se debe haber guardado la fecha del ultimo acceso) y empieza los los mensajes de fichero de Solo lectura , Volverse a inicializar sesión en Office ,.......  cierre inesperado de la aplicación ete etc....



Office 365 no deja de ser un Office en la nube y como tal se comporta.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 22/Diciembre/2020 a las 08:52
Publicado originalmente por javier.mil javier.mil escribió:

Publicado originalmente por Mihura Mihura escribió:

+1.

Lo suyo sería guardar la fecha/hora de última ejecución y no permitir nada raro.


El problema que le veo aqui , es que algun usuario astuto No entre en la aplicacion , primero cambia la fecha del PC o Windows y despues entra ,...... y entonces puede tener dias , mese o años extra  ....

Más pallá o más pacá ese PC tendrá conexión a internet, se actualizará la hora o tú podrás comprobarla y en ese momento al detectar 'la listeza' se bloquea el programa completamente ... y a esperar la llamada del cliente. Que me dé las explicaciones convincentes y que pague por volver a tenerlo en funcionamiento. Porque supongo que es un programa de pago ¿no?.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable