PDA

Ver la Versión Completa : Bloquear Fecha en Windows


Gabriel A Reyes
01-07-2003, 14:29:02
Buenas.

Tengo un pequeña pregunta, requiero bloquear el cambio de fecha en windows cuando ingresen a la aplicación la bloque y cuando salga la desbloque.

En windows inferor de version a XP , solo cambio el nombre o extension del TimeDate.cpl y listo y cuando salgo vuelvo a dejar todo como estaba, pero en windows XP, tiene un sistema regeneredor y lo cambio y vuelve y lo crea, es mas lo cambiaba y creaba un archivo con el mismo nombre y el windows detectaba que estaba dañado o no era y lo copiaba encima y listo me dañaba mi truco.

Mi pregunta es como controlo en windows xp la fecha?

gracias, por leer y cualquier ayuda sera bien recibida.

gabriel

delphi.com.ar
01-07-2003, 15:17:41
Si haces eso en Win9x, si el usuario abre una ventana de MsDos, pone Date, y cambia la fecha....

No conozco nada que bloque 100% la modificación de la fecha, a no ser que instales una política de seguridad muy rígida.

¿Para qué quieres hacer esto?¿Es una aplicación cliente-servidor?

__cadetill
01-07-2003, 15:48:10
Posteado originalmente por delphi.com.ar
¿Para qué quieres hacer esto?

Motivos? miles. Hicimos una aplicacion en la que controlaba la entrada y salida de los empleados (entre otras cosas) y, los muy "mamones", cuando llegaban mas tarde de la hora, cambiaban la hora del relox para hacer el fichaje :mad:

Con que era equipos w2k, lo hicimos con las protecciones que da el SO

delphi.com.ar
01-07-2003, 16:01:25
Bueno.. una pregunta llevaba a la otra, y si es una aplicación cliente-servidor, le iba a sugerir que tome la hora del servidor. O tomarla de Internet!
O en Win2000 y WinXP, utilizar herramientas administrativas, seguramente puedes hacer que solo en Administrator pueda cambiar ciertas propiedades, al igual que Root en unix.


Saludos!

andres1569
01-07-2003, 16:55:09
Si quien debe bloquear la fecha es la misma aplicación que la usa, y teniendo en cuenta que al abrir dicha aplicación la fecha/hora es la correcta, creo que lo más seguro (aparte de lo que dice Delphi.Com.Ar de tomar la fecha del Servidor), es hacer un GetTickCount y una llamada a Now al mismo tiempo, es decir al entrar, y almacenarlo en sendas variables de tipo Longint y de tipo TDateTime.

Luego habría que programar una rutina tipo NowActual (en "spanglish") que hiciera un GetTickCount y devolviera la fecha inicial más los días/horas/minutos transcurridos. Esto queda para quien quiera programarlo.

Una pega es que cada 49 días habría que reiniciar contadores.

Gabriel A Reyes
01-07-2003, 23:11:26
Muchas gracias por el interes prestado.

Haber tengo una aplicación distribuida hasta el momento en 1000 puntos, es un tarifador de cabinas telefonicas, no es cliente servidor, pero uso el reloj del windows para tarifar, hay momentos que el usuario cambia la fecha y la tarifación se vuelve loca, por que tomo la hora inicial de la llamada y cuando cuelga tomo la hora final y tarifo, no puedo idearme un reloj propio pues hay infinidad de equipos y algunos no lo soportarian seria un carga en el recurso, bueno hay variedad de windows desde 95 hasta 2000 y debe funcionar en todos.
utilizo delphi 2.0 c/s y delphi 6.0 c/s hay algunas rutinas que no puedo cambiar de version de delphi, por una simple razon funciona y si funciona dejalo quieto.


Gracia gabriel reyes

Gabriel A Reyes
01-07-2003, 23:13:47
el usuario no lo daña a proposito, y claro si lo cambio por d.o.s. es dificil de bloquear, el objetivo no es ser estricto.


gracias gabriel reyes

delphi.com.ar
01-07-2003, 23:17:28
Otra puede ser tener un timer que se ejecute en un intervalo razonable, y que guarde en una variable un TDateTime, si este TDateTime varía demasiado de una iteración a la otra... ¡Te cambiaron la Fecha!.. Lo que puedes hacer es el mal menor, retomar la fecha de la variable.

¿No puedes traer la hora de la trama telefónica? ¿Tienes accesos online a Internet?

acertij022
02-07-2003, 17:56:01
yo lo que aria seria algo distinto: :o
al iniciarce la aplicacion tomaria la hora y fecha del sistema (teoricamente esta debe ser correcta), luego tomaria el tiempo que windows esta encendido (truco 261 - trucomania) y me rigiria por este tiempo dejando de lado la hora del sistema .
Con este metodo no podran realizarte fraude en cuanto a cambiar la hora del sistema al estar corriendo tu aplicacion

espero averte solucionado tu problema
Salud2

Gabriel A Reyes
04-07-2003, 14:11:14
la solución fue facil, como debo estar enviando el tiempo transcurrido a un display en la cabina telefonica, pues tome la hora cada vez que entro al aplicativo e incremento este tiempo cada vez que voy a enviar y tengo un tiempo independinte, pero solo lo empleo en el caso de que hallan modificado el tiempo del sistema, pues tengo un punto de referencia para saberlo.


Gracias a todos lo que se interesaron, disculpe lo que voy a decir no quiero lastimar a nadie , pero llevo en el foro varios años y he realizado unas cinco preguntas y es la primera vez que responde.
De verdad gracias lo hacen sentir bien. (despues de tantos años pero llego uan respuesta).

GRACIAS, GRACIAS
Gabriel Reyes