Pregunta

En mi programa de escritorio, quiero verificar eso para ver si el usuario ha atrasado su reloj.

Para hacerlo, comparo la marca de tiempo de ciertos archivos del sistema operativo con la fecha actual de la computadora.Si alguno está después de lo que la computadora cree que es la fecha actual, entonces debe haber atrasado su reloj.

Para Windows XP, he estado usando archivos como:

c:\win386.swp
c:\windows\user.dat
and several others.

Dos preguntas:

  1. ¿Es esta una forma decente de hacerlo o hay algo mejor?

  2. (Suponiendo que la respuesta a 1 es "decente") ¿Cuáles serían algunos buenos archivos de Windows Vista y Windows 7 para comparar?


Conclusión:Priyank dijo algo obvio que se me había escapado:En lugar de utilizar archivos del sistema, la forma más fácil y sencilla podría ser simplemente utilizar la marca de tiempo de su programa.Después de todo, la fecha en que se instaló es exactamente la fecha desde la que desea que comience la prueba.

Resulta que sus respuestas y mi investigación de otras preguntas relacionadas con StackOverflow y los artículos mencionados me han llevado a decidirme por un esquema mucho más simple.Mis usuarios de prueba ya deben obtener una clave para utilizar la prueba.Tengo la fecha registrada incrustada en la clave.Realmente no tengo que comprobar si el reloj está retrasado.En cambio, puedo ver si la hora actual está entre la fecha registrada y la fecha registrada más n días.

Si quieren tomarse la molestia de eludir ese esquema, entonces déjenlos.Estoy de acuerdo en que esa gente no pagaría de todos modos.Haga de su programa algo que valga la pena, que la gente disfrute y quiera usar y que la mayoría pague.

¿Fue útil?

Solución

Los archivos de Windows siempre tendrán una fecha anterior, lo mejor es verificar la fecha de creación o modificación de su programa con la fecha del sistema.O cada vez que su programa se cierre, asegúrese de anotar la marca de tiempo y compararla con la próxima vez que inicie su programa, y ​​siempre habrá NTP: http://en.wikipedia.org/wiki/Network_Time_Protocol

Otros consejos

una mejor manera de hacer eso en mi humilde opinión sería la de almacenar la fecha y hora actual en el registro de la primera vez que el programa se corrió y luego compararlo con la fecha y hora actual en la próxima carrera y actualizar la marca de tiempo si todo está bien.

Esto no es una respuesta directa, sólo para ofrecer alguna opinión y referencias. Demasiado tiempo para mí para agregar como comentario.

Si el propósito es crear un software de tiempo limitado para uso de demostración / prueba, tenemos que encontrar un equilibrio entre la cantidad que va sobre su implementación y la tendencia de los usuarios a 'piratear' pasarla.

A menudo me he digo a la gente, si su software atrae a los piratas informáticos, es probable que sea algo útil / buena. No tiene sentido proteger un software que nadie encuentra utilidad.

De todos modos, la charla filosófica a un lado, por debajo hay un par buenas lecturas sobre este tema:

Cómo implementar limitada en el tiempo de prueba en Foro de Joel < br> prueba limitada de tiempo y Windows Certificación en SO
necesita asesoramiento sobre la aplicación de un de prueba limitada en el tiempo de SO

Una opción sería la de obtener la fecha de un servicio web o servidor de tiempo. El problema aquí es que esto sólo funciona si hay conexión a internet, así que esto sería simplemente un método complementario para una más segura.

Windows proporciona APIs para la notificación de los cambios de tiempo del sistema. Uno por ejemplo es el control ActiveX SYSINFO.OCX proporciona aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top