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.