Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-01-2006
sanz sanz is offline
Miembro
 
Registrado: ene 2006
Posts: 11
Poder: 0
sanz Va por buen camino
Exclamation 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
Responder Con Cita
  #2  
Antiguo 27-01-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
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;
Responder Con Cita
  #3  
Antiguo 27-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #4  
Antiguo 27-01-2006
igest2000 igest2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Oviedo
Posts: 47
Poder: 0
igest2000 Va por buen camino
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
Código Delphi [-]
const demo=true;

....

procedure guardarDatos();
begin
if not demo then
  continuarGuardando()
  else
  messageDlg('No puedes guardar los datos en esta versión demo.',MtInformation,[MbOk],0);
end;

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
Responder Con Cita
  #5  
Antiguo 27-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Y si no, pues con un condicional, como hemos dicho...

Código Delphi [-]
procedure guardarDatos();
begin
{#IFDEF NOTRIAL}
  continuarGuardando()
{#ELSEIF}
  messageDlg('No puedes guardar los datos en esta versión demo.',MtInformation,[MbOk],0);
{#ENDIF}
end;

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.
Responder Con Cita
  #6  
Antiguo 06-11-2008
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 21
lbuelvas Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 06-11-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Wink

Cita:
Empezado por lbuelvas Ver Mensaje
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 ?
que pasa... reviviendo hilos viejos ?
__________________
BlueSteel
Responder Con Cita
  #8  
Antiguo 06-11-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Estaba aburrido el muchacho, déjalo ser...

Responder Con Cita
  #9  
Antiguo 06-11-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por BlueSteel Ver Mensaje
que pasa... reviviendo hilos viejos ?
no aguanto la tentacion, es que la comision esta jugosa
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #10  
Antiguo 06-11-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por BlueSteel Ver Mensaje
que pasa... reviviendo hilos viejos ?
jejeje, cuando leí el título del hilo, pensé que ya estaban infiltrados algunos terroristas por aquí

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 07-11-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Wink

Cita:
Empezado por eduarcol Ver Mensaje
no aguanto la tentacion, es que la comision esta jugosa
parece que tu tampoco aguantastes....

Cita:
Empezado por egostar
jejeje, cuando leí el título del hilo, pensé que ya estaban infiltrados algunos terroristas por aquí
mmmm... así parece...

Salu2
__________________
BlueSteel
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 06:12:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi