PDA

Ver la Versión Completa : Como se hace una versión demo


David
10-10-2006, 18:38:10
Hola

Me piden versiones demo de mi programa , pero yo lo tengo tal y como es , así que igual hay que hacer demos y mandarlas a los que los piden .

No sé que tipo de demo hacer , si una en la que el programa lo pueda utilizar sólo por un periodo determinado , por ejemplo 30 dias o por otra parte , que sólo pueda insertar 10 registros , esta ultima opción , pues bien , hacer que todas las tablas o casi todas , no puedan ir más de 10 registros , si va borrando , pues no sé no lo veo claro .

El caso es como se programa esto , de la demo .

Un saludo

ixMike
10-10-2006, 18:53:24
Mi recomendación:

1- Copia tu carpeta del proyecto (con todos los archivos), y la llamas "Proyecto (Demo)"
2- Cambia alguna cosilla dentro de la aplicación para que el usuario sepa que es demo (algún aviso, que en el título de la ventana ponga "Programa Demo", o algo por el estilo, lo dejo a tu gusto)
3- Limitar el programa: Hay varios tipos de limitaciones, según el tipo de programa. Puedes inhabilitar alguna función (poner la propiedad Enabled de los botones y los menús en False permanente). También puedes colocar un contador que se guarde en un INI o en registro y que se incremente en cada ejecución o en cada registro insertado, y si ese contador supera un límite que tú impongas, pues avisa al usuario y el programa no se puede usar (se cierra, se bloquea). Pero procura que ser discreto, pues un usuario experto podría piratear tu programa.

Espero que esto te haya ayudado.

Saludos y hasta la próxima ;)

pvizcay
10-10-2006, 19:26:35
te recomiendo que mires el turbopower onguard que esta en sourceforge.. era propietario antes.. trae todos los tipos normales de demos, x tiempo, x veces de ejución y esta todo automatizado para que le entregues claves a tus clientes si quieren registrar el producto.. ten en cuenta que en cuanto a la seguridad no es una maravilla, pero no existes solucines mágicass, es muy fácil crackear todo (= estoy seguro que cualquier cosa que hagas tu a mano sera 10 veces más facil de romper), pero lo que se busca es algo relativamente bueno para las posibilidades de que te lo pirateen.. no te recomiendo hacer lo que dice el muchacho arriba de copiar el directorio, te recomiendo que uses compilación condicional y si consideras que una funcionalidad no debe estar en el demo sacala, esa es la mejor protección..
salu2

ixMike
10-10-2006, 19:40:40
(= estoy seguro que cualquier cosa que hagas tu a mano sera 10 veces más facil de romper)

Subestimas mucho a nuestro amigo David :cool:

... el muchacho de arriba ...

¡¡¡Ese muchacho tiene nick!!!

si consideras que una funcionalidad no debe estar en el demo sacala, esa es la mejor protección

Si extrae alguna función para que sea demo... ¿para qué proteger el programa? Quiero decir, o bien lo protege, o bien quita alguna función, pero no las dos cosas (o eso pienso yo, es que estoy a favor del software libre).

Saludos a todos.

Northern
10-10-2006, 20:39:43
Yo usaría las "conditional compilation" $DEFINE, $IFDEF, etc. y colocándoles en lugares estratégicos de tu programa te evitas tener que estar mirando si has cambiado en tal unit tal procedimiento y etc.

David
10-10-2006, 23:10:46
Yo usaría las "conditional compilation" $DEFINE, $IFDEF, etc. y colocándoles en lugares estratégicos de tu programa te evitas tener que estar mirando si has cambiado en tal unit tal procedimiento y etc.

y como se utiliza eso ??

jachguate
11-10-2006, 01:20:32
los defines sirven para que el compilador ignore o incluya fragmentos de código si no se ha definido un simbolo específico de compilación condicional.

Te pongo un ejemplo:


procedure TForm1.Button1Click(Sender: TObject);
begin
{$ifdef Trial}
ShowMessage('Aquí se realiza el cálculo de comisiones en la versión '
+ 'de pago. Entrá a www.david.com para comprar la licencia!');
{$else}
EjecutarCalculoComisiones;
{$endif}
end;


Cuando el compilador esté procesando tu código, si se ha declarado previamente el simbolo Trial, tomará las línea que manda mostrar un mensaje, mientras que si dicho simbolo no está declarado tomará la línea que manda a calcular las comisiones.

El uso de directivas del compilador es recomendable, pero tiene sus "detalles", pues si no se es cuidadoso al compilar o al declarar los símbolos es posible que termines incluyendo código que no deseas o que dejes de incluir código que debiera estar allí. Si tenes el cuidado adecuado, la gran ventaja es que no hay hacker que pueda habilitar tal o cual funcionalidad de tu programa, pues la funcionalidad simplemente no existirá el el exe, dado que el compilador la ha ignorado antes de ensamblarlo.

La forma de declarar un símbolo condicional es, bien a nivel de unidad, así:


{$define trial}


O bien a nivel del proyecto completo, en Project/Options/"Directories/Conditionals"/Conditional defines, podes poner tantos como querras separados por punto y coma.

Hasta luego.

;)

Bicho
11-10-2006, 09:56:09
Hola,

me parece realmente interesante éste hilo, quizá ya se ha discutido otras veces. Pero como tampoco me he encontrado hasta ahora con la necesidad de crear una demo de una aplicación mía, siempre habría pensado en lo que se contestó al principio:

1- Copia tu carpeta del proyecto (con todos los archivos), y la llamas "Proyecto (Demo)"
2- Cambia alguna cosilla dentro de la aplicación para que el usuario sepa que es demo (algún aviso, que en el título de la ventana ponga "Programa Demo", o algo por el estilo, lo dejo a tu gusto)
3- Limitar el programa: Hay varios tipos de limitaciones, según el tipo de programa. Puedes inhabilitar alguna función (poner la propiedad Enabled de los botones y los menús en False permanente). También puedes colocar un contador que se guarde en un INI o en registro y que se incremente en cada ejecución o en cada registro insertado, y si ese contador supera un límite que tú impongas, pues avisa al usuario y el programa no se puede usar (se cierra, se bloquea). Pero procura que ser discreto, pues un usuario experto podría piratear tu programa

o usar algún componente como dice pvizcay del tipo turbopower onguard o el programa AsProtect (www.aspack.com/asprotect.html)

Nunca había necesitado usar las clausulas define, pero tomo nota de la explicación de jachguate.

Muchas gracias

Saludos