Proteccion Programas con Caducidad
Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Tus Funciones Favoritas & Aportaciones & Artículos
Descripción del foro: Para publicar código interesante, aportaciones y artículos
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85673
Fecha de impresión: 23/Abril/2024 a las 18:45
Tema: Proteccion Programas con Caducidad
Publicado por: javier.mil
Asunto: Proteccion Programas con Caducidad
Fecha de publicación: 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
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Respuestas:
Publicado por: JuanW
Fecha de publicación: 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"....
|
Publicado por: Mihura
Fecha de publicación: 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.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: javier.mil
Fecha de publicación: 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.
.
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: javier.mil
Fecha de publicación: 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)
Otro Mensaje ( Abre Access en formato solo Lectura)
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: Mihura
Fecha de publicación: 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.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: javier.mil
Fecha de publicación: 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....
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: javier.mil
Fecha de publicación: 21/Diciembre/2020 a las 23:14
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 ....
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: Mihura
Fecha de publicación: 22/Diciembre/2020 a las 08:49
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.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: Mihura
Fecha de publicación: 22/Diciembre/2020 a las 08:52
javier.mil escribió:
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.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
|