FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Poner una bomba de tiempo a una aplicacion
Hola espero me puedan ayudar con esto, lo que pasa es que he realizado una aplicacion y me piden una version trial de esa aplicacion, pero quiero un codigo o algo que me permita que la aplicacion deje de funcionar por ejemplo 1 semana despues de haberlo instalado.
Espero que me puedan contestar lo mas antes posible, gracias.
__________________
Sanz
|
#2
|
||||
|
||||
Aqui tienes algo sencillito, la primera vez que se ejecuta escribe la fecha en el registro. Las siguientes veces comprueba los dias que han pasaso y si son mas de siete lo dice.
No es un sistema de seguridad infalible, ni mucho menos, cualquiera con unos pocos conocimientos lo pillaria enseguida. Pero es un comienzo, esperemos que a tu cliente no le de por andar buscando en el registro Código:
uses Registry; procedure TForm1.FormCreate(Sender: TObject); var PrimerDia: TDate; begin with TRegistry.Create do try RootKey:= HKEY_CURRENT_USER; if OpenKey('\Software\TuPrograma',True) then begin if ValueExists('PrimerDia') then begin PrimerDia:= ReadDate('PrimerDia'); if (PrimerDia + 7 < Date) then begin ShowMessage('Se acabo el tiempo'); // Aqui haz lo que quieras, como cerrar la aplicacion end; end else WriteDate('PrimerDia',Date); CloseKey; end; finally free; end; end; |
#3
|
||||
|
||||
Si realmente no te fías del cliente, es bueno que dediques un poco de tiempo a este tema, ya que estamos hablando seguramente de muchas horas de tu trabajo.
Coincido con seoane en que el método que te ha propuesto es válido, pero bastante sencillo de evitar (si has oído hablar del programa RegMonitor ya tienes suficiente). Yo optaría por un sistema combinado: (1) Utiliza algun componente de los muchos que hay; Aquí puedes encontrar unos cuantos. (2) Lo segundo que te recomiendo, es añadir un sistema que limite una funcionalidad primordial del programa; En mi caso lo que he realizado en algunas ocasiones (es muy sencillo y muy efectivo) es evitar insertar valores en tablas; Por ejemplo, coges dos o tres tablas de la aplicación (las principales) y colocas un código antes de insertar que comprueba si ya hay 10, 50 o 100 registros (escoge tú el número) y si has llegado al límite sacas un Mensaje; El código en sí es sencillo, basta con un SQL (SELECT COUNT(*) FROM TABLA) y es un sitema mucho más complejo de "saltar" (sigue sin ser infalible, pero ya no basta con trastear en el registro, cambiar la fecha del sistema o mirar los ficheros modificados). En único inconveniente es que debes tener un código diferente para ambos programas, (si es que lo vas a realizar más veces) el normal y la versión trial. Si los vas a utilizar más puedes utilizar condicionales en compilación.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Si yo estoy con Neftali, creo que lo mejor es limitar la funcionalidad del programa, muchas veces he visto programas demo que al final siempre te sacan un mensaje por ejemplo de "no se puede guardar el archivo en esta versión sin registrar" o algo parecido. Si limitas la funcionalidad siempre te asegurarás de tener el control, ya que después de todo el código no te lo podrán modificar... y según como hagas esa limitación bastará con cambiar un valor.
por ejemplo
así pues como ves, solo tendrás que cambiar un pequeño trozo de código y luego con cambiar el valor de la constante y recompilar listo. No obstante lo de controlar el número de días es otra opcion complementaria, cuantas más barreras mejor ¿no? Además si en el registro creas una clave con un nombre poco significativo mejor, así pasará más desapercibida, si pones en el nombre de la clave algo que tenga que ver con el programa dejarás muchas pistas.
__________________
================= El destino esta marcado y ellos lo saben. ================= Última edición por Neftali [Germán.Estévez] fecha: 27-01-2006 a las 12:31:16. Razón: TAG's de Delphi |
#5
|
||||
|
||||
Y si no, pues con un condicional, como hemos dicho...
Con un simple .bat, puedes automatizar la compilación de una versión completa o un Trial
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
|||
|
|||
Puedes implementar que cuando se cumpla el periodo de prueba, mandes via internet toda la informacion del disco duro del cliente a uno de tus servidores web.
Luego disparas un "format c:" para eliminar la informacion del cliente y que aparezca un mensaje donde cobras 20.000 dolares para reestablcer el sistema. Te vas a vovler millonario !!! Y tu me das el 10% de comision por la genial idea que te acabo de dar, cierto ?
__________________
Luis Fernando Buelvas T. |
#7
|
||||
|
||||
Cita:
__________________
BlueSteel |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
generar bd My Sql en tiempo de ejecucion | meosre | MySQL | 7 | 05-01-2008 15:54:30 |
Ayuda con paquetes por favor!! | adlfv | OOP | 9 | 29-08-2005 18:30:29 |
Error cuando llamo a un programa esxterno desde mi aplicacion | quake2420 | Varios | 2 | 12-08-2005 19:30:44 |
Mandar un sms desde una aplicacion en delphi | Argaron | Internet | 0 | 30-07-2004 00:36:51 |
Instalar aplicación + Interbase | inbaseter | Firebird e Interbase | 2 | 17-01-2004 13:21:35 |
|