2009-09-13 11 views
8

C# 2008 SP1Crear una aplicación que expirará después de un período de prueba

Estoy escribiendo una aplicación que quiero dar a un número selecto de clientes.

Cuál es la mejor solución para usar, por lo que después del período de prueba (1 mes) la aplicación ya no funcionará.

Estaba pensando que si están interesados ​​en comprar el software, les daré una clave de licencia o algo así, para desbloquear la aplicación.

Tengo un presupuesto muy limitado ya que estoy trabajando por mi cuenta. Entonces, ¿hay algún producto gratuito de terceros que haga esto?

+0

Relacionados: http://stackoverflow.com/q/20676008/1207195 –

Respuesta

9

Si vas con una acercado basado en la fecha, puede ser eludido por un usuario de la configuración de su fecha de regreso (aunque dudo que la gente hace esto muy a menudo). Una alternativa es permitir que la aplicación se inicie un cierto número de veces antes de caducar; este enfoque obviamente ignora cualquier cambio de fecha.

Mi método preferido es deshabilitar partes de la aplicación que son críticas para el uso normal del programa pero que no son críticas para su evaluación (como la capacidad de guardar su trabajo, por ejemplo). Lo hago con mi propio software y luego les envío un código de desbloqueo único para su computadora cuando compran el programa completo. Una ventaja principal de este enfoque es que la demostración instalada funciona como una herramienta de venta potencial para siempre. Prefiero que mi programa siempre funcione hasta cierto punto; No creo que el mensaje "Lo siento, este programa haya expirado" genere muchas ventas.

+1

Si toma este enfoque, la funcionalidad "faltante" aún estaría allí en el programa; usted * podría * paralizarlo así que un ahorro/carga lleva 5 minutos, por ejemplo. Entonces tendrían verdadera funcionalidad completa, pero el programa sería muy difícil de usar por completo, hasta que se registraran. –

+0

@Mark: siempre tuve la intención de que la funcionalidad faltante aún esté allí en la versión demo, de modo que solo tengan que ingresar el código de desbloqueo para habilitar todo. Me gusta tu idea sobre dejar la funcionalidad pero paralizarla de una manera molesta. Otra idea que tenía era permitir que se guardara el trabajo, pero marque el archivo de una manera que evite que se vuelva a abrir hasta que compre la versión completa. – MusiGenesis

+0

En realidad, es posible dificultar eludir el enfoque basado en el tiempo al anotar el momento en que se inicia y cierra la aplicación (y viceversa) y comparar estos tiempos para ver si el reloj se ha reestablecido. – CannibalSmith

1

La solución más simple (y como resultado la más simple de eludir) es almacenar la fecha en que el programa se instala por primera vez (o se ejecuta) en un archivo y luego verificarlo contra la fecha actual cada vez que se inicia el programa. Si la diferencia es> 30 días, salga del programa.

Al almacenar la fecha en lugares más oscuros o lugares que son más difíciles de manipular para el usuario (como el registro), se vuelve cada vez más difícil para ellos eludir el sistema y obtener más tiempo para usarlo, pero doesn No les impida rebobinar el reloj en su PC.

Si almacena la fecha en su servidor y también obtiene la fecha de su servidor, entonces esto es más seguro, pero significa que el usuario debe tener una conexión de internet abierta para usar su software.

5

Sus opciones:

  1. En la instalación de escribir algo en el registro, por lo que es difícil de encontrar y eliminar más tarde. De esta forma, su aplicación sabrá cuándo se instaló originalmente y si todavía debería funcionar o detenerse. Este método fallará si el registro se limpia bien o si se reinstala el sistema operativo.

  2. Utilice algún tipo de servicio de validación en línea. Estará libre de las desventajas de [1]. También le permitirá controlar la actividad de la aplicación que trasciende la instalación del sistema operativo. Para que eso funcione, de alguna manera deberá identificar de forma única a la PC de un usuario y transmitir su firma a su servidor.

+0

Chicos, dijiste "escribe algo en el registro, por lo que es difícil de encontrar". ¿Cómo podría ocultar algo al usuario si existe una herramienta tan buena como ProcMon de Sysinternals (https://technet.microsoft.com/en-us/sysinternals/bb896645.aspx). Muestra exactamente cada cadena que escribe en el registro. La misma situación con la creación de un archivo en el lugar oculto. No hay lugares ocultos en la computadora. – Evgeny

2

Escriba una clave de registro durante su instalación. La clave contendrá la fecha de la instalación. La fecha en la clave de registro debe ser encriptada.

Cuando se inicia su aplicación, verifique la existencia de esta clave de registro. Si no existe, cierre la aplicación, de lo contrario, descifre la fecha, verifique el período de prueba y cierre la aplicación si la prueba finaliza.

2

Aquí está el truco que hice para evitar que los usuarios jueguen con la configuración de fecha y hora y retrocedan en el reloj.

Cuando la aplicación se ejecuta por primera vez, cifre la primera fecha de ejecución y la fecha de prueba final y la última fecha de ejecución en el registro. Y descifre y compruebe la fecha de prueba final y no la fecha del sistema desde allí cada vez que se ejecuta la aplicación. Esta solución funciona para usuarios sin conectividad a Internet.

+2

Podría ser tonto, pero no veo cómo esto puede funcionar. Necesita la fecha/hora desde algún lugar, CMOS, reloj del sistema operativo, servidor de tiempo de Internet para ver si una prueba ha expirado. – Cameron

+0

¿Qué sucede si el usuario limpia el registro? Creo que la mejor manera es activar la aplicación en línea usando las teclas. –

Cuestiones relacionadas