Buenos dias/tardes/noches. Estoy actualmente trabajando en una aplicación de Windows Forms con C#. Hice un sistema que activa la aplicación insertando una serial (algo común). Pero lo que pasa, es que es tan sencillo saltarse el periodo minimo de uso solo con cambiar la fecha del computador, entonces, estoy buscando la manera de que aunque cambien la fecha de su computador no puedan saltarse el periodo minimo.
O al menos, algo con lo que pueda fijar en qué después de 15 días la aplicación no pueda usarse y no exista forma de saltarse esta seguridad. No requiero que me entreguen el código hechesito, sólo preciso que me orienten. Gracias.
Yo creo que quien te puede ayudar y mucho con esto es @79137913 (https://underc0de.org/foro/index.php?action=profile;u=21192)
Ahí lo invocamos para que te venga a tirar una mano.
De igual forma, para evitar que tome la fecha del computador, deberías hacer que tome la hora de un servidor y que no haga esa verificación de manera local.
Saludos,
ANTRAX
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Yo creo que quien te puede ayudar y mucho con esto es @79137913 (https://underc0de.org/foro/index.php?action=profile;u=21192)
Ahí lo invocamos para que te venga a tirar una mano.
De igual forma, para evitar que tome la fecha del computador, deberías hacer que tome la hora de un servidor y que no haga esa verificación de manera local.
Saludos,
ANTRAX
Ehm, lo que pasa es el que sistema que estoy realizando deberá funcionar sin internet y de manera local. Ese es el problema. Si hubiese sido sistema web, no tenía problema alguno, pero aquí se me dificulta.
Lo único que me he ideado, es crear una especie de timer y así cuando el programa haya sido usado durante X cantidad de horas se bloquee. Pero no veo muy eficiente esto.
@Rex (https://underc0de.org/foro/index.php?action=profile;u=77828)
Se me ocurren dos ideas:
1) - Podrías usar un contador que funcione cada vez que se ejecute el programa, sin embargo, si se cierra, se pierde todo el progreso; Es por ello que es mejor la opción dos:
2) - Tener una base de datos con contraseña o con privilegios (Por lo menos), donde se almacene el número de conteos para que tenga cierta persistencia y que cada vez que se inicié el programa verifique cuanto a transcurrido.
PD-0: No creo que el programa lo vuelva ineficiente o tenga ciertos problemas si haces que el conteo sea cada "Un segundo".
[Actualizado]
PD-1: Hay ciertos programas para Windows que funcionan como tú deseas, esto funciona usando el RegEdit.
Espero ayudarte ...
- DtxdF
se me ocurre que lo hagas a traves de una dll o con un certificado que expire.
HOLA!!!
Lo mas facil que puedo recomendarte es que verifiques la hora por internet http://worldtimeapi.org/api/timezone/America/Argentina/Buenos_Aires
Y si la fecha de la pc no coincide con esa fecha directamente no abras el programa y pedi que cambien la fecha.
Esa es la forma mas simple de verificar la fecha real.
GRACIAS POR LEER!!!
Hola. Pues como comentaron arriba puedes crear una clave en el registro para que lleve el.conteo de cuantos días se ejecuto el programa. Otra cosa que se me ocurre que hace años que no programo en .net creo que podrías hacer lo siguiente:
En MySettings guardas las veces que se ejecuto el programa por día.
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
HOLA!!!
Lo mas facil que puedo recomendarte es que verifiques la hora por internet http://worldtimeapi.org/api/timezone/America/Argentina/Buenos_Aires
Y si la fecha de la pc no coincide con esa fecha directamente no abras el programa y pedi que cambien la fecha.
Esa es la forma mas simple de verificar la fecha real.
GRACIAS POR LEER!!!
Creo que no fui especifico. Lo que sucede es que el sistema deberá funcionar en un ambiente local, *SIN INTERNET*.
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
@Rex (https://underc0de.org/foro/index.php?action=profile;u=77828)
Se me ocurren dos ideas:
1) - Podrías usar un contador que funcione cada vez que se ejecute el programa, sin embargo, si se cierra, se pierde todo el progreso; Es por ello que es mejor la opción dos:
2) - Tener una base de datos con contraseña o con privilegios (Por lo menos), donde se almacene el número de conteos para que tenga cierta persistencia y que cada vez que se inicié el programa verifique cuanto a transcurrido.
PD-0: No creo que el programa lo vuelva ineficiente o tenga ciertos problemas si haces que el conteo sea cada "Un segundo".
[Actualizado]
PD-1: Hay ciertos programas para Windows que funcionan como tú deseas, esto funciona usando el RegEdit.
Espero ayudarte ...
- DtxdF
Asi es, se pierde el progreso y es posible que el sistema solo se utilice 4 horas al día. Pero se me ocurrió crear un servicio de windows para que no se pierda el progreso mientras se tenga encendido la PC. Pero de igual forma intentaré con la base de datos, gracias.
HOLA!!!
Bueno, vamos por algo un poco mas profesional entonces:
Agrega en NuGet StandardLicensing
Y segui los pasos:
https://lab.junian.net/Standard.Licensing/
GRACIAS POR LEER!!!