SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: Perla_kiko en Jueves 25 de Mayo de 2006, 11:06
-
Hola,
Tengo hecho mi paquete de instalación con el Inn setup 5, pero necesito insertar una caducidad para que solo les deje probarlo durante X dias. Alguien me puede decir donde puedo encotrar como hacerlo?
-
Hola, que tal.
Por lo general eso se hace dentro de tu aplicación, es decir, cuando ejecutan tu aplicación por primera vez inicializas un contador y cada vez que ejecuten tu programa verificas la diferencia entre el contador y la fecha actual, si la diferencia ha exedido el tiempo deseado, mandas un mensaje de que la aplicación expiró y después cierras la aplicación.
Espero haberme explicado bien.
Hasta luego.
-
ya pero entonces si cambian la fecha del sistema lo pueden truquear no?
-
Si, en eso tienes razón, para ello lo que podrías hacer es tomar la hora de un servidor externo, que es lo que hacen algunas aplicaciones, así no tienes problemas si llegan a cambiar la hora, otra cosa que hacen algunas aplicaciones y que es más fácil es permitir un numero máximo de ejecuciones de tu aplicación, de esta forma ya no dependes del tiempo, sólo depende del número de veces que ejecuten tu aplicación.
Otra forma para seguir tomando en cuenta el tiempo es ir contando los pulsos de reloj a nivel de hardware, así aunque te lleguen a cambiar la hora, lo que cuentas son los pulsos desde el hardware, pero esto es un poco más complicado, ya que tendrías que meterte con el manejo de hardware y tener una aplicación en segundo plano que se active de ves en cuando para realizar el conteo.
Buena, esas son las formas que me se, tal vez existan más y mucho más fáciles, o podrías inventarte alguna, con que te funcione para lo que quieres, esta bien.
Hasta luego.
-
Me han hablado de escribir una variable en el registro de windows, alguin sabe como acceder a estas variables y como crearlas desde visual c++
-
Más fácil. Haz una función que empiece a contar, cuando llegue hasta X días, que muestre un mensaje de que el programa caducó. :rolleyes:
-
Lo que yo haria es escribir la variable en el registro de windows pero para que sea mas complicada, que sea combinacion con el numero de serie del disco duro. No parara a un buen cracker pero al usuario normal le basta.
-
hola killrazor tienes codigo que haga esto de escribir en el registro de Win
-
otro metodo sin usar registros seria usar un archivo encriptado con la cantidad de segundos de ejecucion.
Durante la ejecucion del programa creas un thread que cuente con un delay.
Algo tal que:
Sleep(1000);
Count++;
//esto medira los segundos de ejecucion independientemente del reloj local
por que ser tan retorcido? bueno, te ahorras que te miren los registros, y te ahorras que les sirva cambiar la fecha.
Cada cierto tiempo, guardas la cantidad de segundos cifrada en un archivo.
tambien seria bueno hacerlo en la salida del programa y al recibir la peticion del sistema de reinicio.
Espero que te sirva, es sencillito de codificar.