FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Evento adecuado para controlar si el software está registrado
Feliz Año a todos los usuarios de este fantástico foro!!!
Estoy intentando dotar de algo de seguridad a una aplicación realizada simplemente para evitar la libre distribución del mismo (sino mi jefe me mata ). Estoy usando el componente mxProtector y una protección que se basa en registrar el software con un número de serie que se obtiene a partir del id de hardware y de un username. Mi pregunta es la siguiente, ¿qué evento es el más apropiado para realizar este control? Hay que tener en cuenta que el funcionamiento sería, algo como sigue: if Registrado then begin //Inicialización del programa //Cauce normal del programa end else begin //Formulario de registro if Registrado then //Inicialización del programa //Cauce normal del programa else Close; end; Gracias!!!
__________________
"Patientia et constantia taelecum" |
#2
|
||||
|
||||
Hola,
Lo cierto es que no creo que haya un sólo lugar en el que actuar en tu caso. Puede ser donde tú quieras o necesites. Puede ser al principio del todo, en el propio archivo "DPR", antes de crear ningún formulario de la aplicación; pero, también puede ser una vez inicializada la aplicación, incluso dejar al usuario usar ciertas partes del programa con normalidad, mientras que no otras, hasta que no lo "registre". No sé si con esto te digo algo que merezca la pena o qué. |
#3
|
|||
|
|||
Hola Dec,
Primero decirte que cualquier comentario que aporte algo merece la pena y después de hacerte un poco la pelota comentarte que me interesaría hacer el control antes de crear los formularios, pero no sé como hacerlo. Me dices que se puede hacer en el dpr, pero no se como. Por otra parte pienso como lo voy a hacer antes de crear los formularios si el formulario de registro es otro formulario. Estoy atascaillo aysss
__________________
"Patientia et constantia taelecum" |
#4
|
||||
|
||||
yo lo pondría en el evento "OnCreate" de tu formulario principal y la primera instrucción, sería la inicialización del componente. Revisa la ayuda y los "demos" que hay sobre ese componente, en ellos se explica bastante bien como proteger la aplicación por fechas o por número de serie.
__________________
|
#5
|
||||
|
||||
Hola,
Aparte de lo dicho por el amigo Contra, echa un vistazo a este archivo "DPR":
Como ves, se trata del archivo "DPR" de un proyecto "vacío" (aunque ya existe el formulario "Form1", que, es el principal) al que se le ha añadido otro formulario. Pues bien, antes de crear el formulario principal de la aplicación, como puedes ver, podemos crear y utilizar otro formulario, u otro componente. No sé si con esto ya coges la idea o no. |
#6
|
|||
|
|||
Gracias a los dos,
Por una parte ya estaba trabajando en la solución de ContraVeneno porque me parecía lo más lógico, pero no tenía muy claro si funcionaría así o no por que el Registro también era un formulario. Por otra parte creo que entiendo tu idea Dec, aunque no sabía que se podía incluir código en el DPR. Creo que te aportación ha sido muy valiosa. Ya por último y con la solución de ContraVeneno casi implementada me he encontrado con un problema. Si la aplicación está registrada va bien. Si se registra tb va bien. El problema es que no se tenga un número de serie válido y la aplicación deba finalizarse. En este caso debe terminarse sin dar ningún mensaje de aviso cosa que hago en el evento OnCloseQuery. ¿Hay alguna forma de finalizar la aplicación sin pasar por este evento? Gracias de nuevo!!!
__________________
"Patientia et constantia taelecum" |
#7
|
||||
|
||||
Hola,
Cita:
Respecto del archivo "DPR", piensa que una aplicación de consola sólo cuenta con este archivo. Delphi nos "abstrae" del mismo, trabajando directamente con formularios, pero, como has visto, estos formularios se crean en el archivo "DPR", es ahí donde la aplicación se pone en marcha, y es perfectamente posible programar lo que se necesite ahí mismo. Y ya no digo más, que, luego todo se sabe. |
#8
|
|||
|
|||
Joer macho es q sabeis de to!!! jeje
Gracias de nuevo... aunq prometo seguir dando más la lata
__________________
"Patientia et constantia taelecum" |
#9
|
||||
|
||||
Revisa el demo sobre el componente que estas utilizando, ahí viene como comprobar las fechas de registro, el ID del hardware, el número de serie, etc... ese componente tiene un evento para cada situación. En otras palabras, en lugar de manejarlo en el OnCloseQuery, lo podrías manejar en el OnExpiration o en el OnInvalidSerialNumber, que son eventos del componente.
__________________
|
#10
|
||||
|
||||
Cita:
Lo que pasa es que, dado que se trata de un componente, lo más cómodo es insertarlo en algún lugar, y lo más a la mano es el formulario principal; pero también puedes insertarlo en el formulario de registro y usar ahí los eventos que te indica ContraVeneno. // Saludos |
#11
|
|||
|
|||
Me parece muy buena tu idea Roman... así que intentaré llevarla a cabo. Si me encuentro con algún problemilla lo mismo voy variando los planes .
Gracias a todos!!!
__________________
"Patientia et constantia taelecum" |
#12
|
|||
|
|||
Hola de nuevo,
En una primera prueba de registro todo funciona perfectamente tal y como yo quería. La solución de incluir el formulario de registro en el .dpr antes de crear cualquier otro formulario me funciona muy bien. Gracias a todos por vuestra inestimable e impagable ayuda
__________________
"Patientia et constantia taelecum" |
#13
|
|||
|
|||
Pues me he precipitado al decir que todo iba bien. La cosa es que me falla al volver a iniciar la aplicación habiéndome registrado, entonces me vuelve a pedir el nº de serie como si no me hubiera registrado. No sé si el fallo está en la inicializáción del componente o donde. Os dejo el código a ver si veis algo extraño. Creo que en el dpr no está el fallo aunq lo dejo aquí.
Gracias.
__________________
"Patientia et constantia taelecum" |
#14
|
||||
|
||||
Ni idea. Aquí habría que saber cómo funciona el componente y cómo lo estás usando dentro de TRegistroForm. Aparentemente el registro no se hace.
// Saludos |
#15
|
||||
|
||||
a mi se me hace que va por aquí:
Cita:
__________________
|
#16
|
|||
|
|||
Hola de nuevo,
Tengo un problema con el componente MxProtector a la hora de generarme el nº de serie y es que me está generando el mismo para varios equipos. Yo había realizado la prueba en 3 PC's distintos y me daba distintos nº de serie. Para generar los nº de serie se basa en el Id hardware, pero para mi sorpresa ayer fui a instalarlo en 4 portátiles Panasonic y me leía el mismo Id hardware y por tanto me generaba el mismo serial. ¿Como puedo hacer para que me genere seriales distintos para PC's distintos? ¿Ese Id hardware de donde lo toma, es decir, donde está registrado para yo poder verlo? Gracias!!!
__________________
"Patientia et constantia taelecum" |
#17
|
||||
|
||||
según tengo entendido, la llave la genera considerando el IDHardware y el nombre de usuario... podría ser que las laptops al ser de la misma marca, sean de la misma serie, utilicen el mismo hardware... ¿pero el nombre de usuario al que registras es el mismo?
__________________
|
#18
|
|||
|
|||
Pues sí le daba el mismo nombre de usuario. Es una aplicación que debe funcionar independientemente de las cuentas de usuario en el PC, entonces yo a ese campo lo que hice fue darle el nombre de la aplicación, pues pensaba que el Id Hardware sería distinto en cada uno.
Gracias por tu respuesta.
__________________
"Patientia et constantia taelecum" |
#19
|
|||
|
|||
pues yo no utilizo ese componente sino lo hago algo similar de la siguiente manera, coloco 4 Edit, en el 1º coloco la Idetificación : que es el nombre del programa a registrar (ej.Soft1), en el 2º IdCPU que es la Id del hardware, en el 3º Fecha que es la fecha de labios interna, y la 4º registrado a que es el nombre de la empresa u otro, despues estos 4 edits los convierto en numeros, los sumo, y lo multiplico por un numero en especial, y tachan ya tenemos el codigo, y para la parte de registración, lo hago de un modo externo algo similar como la licencia de Delphi 2009.
¿será seguro este metodo? ¿lo podrán hackear y decifrar el metodo? gracias. |
#20
|
|||
|
|||
Hola de nuevo,
Volviendo al tema, mi duda es si hay algún otro campo que sea un identificativo único de un PC para poder usarlo para el registro. ¿Se os ocurre alguno? Si es así ¿como se obtiene? Gracias!!!
__________________
"Patientia et constantia taelecum" |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Cómo saber el formato adecuado de los datos para hacer una consulta? | Alcolea | Varios | 3 | 08-01-2009 08:30:38 |
Es TDBCtrlGrid el control adecuado para un TPV | hibero | OOP | 1 | 22-04-2008 08:45:18 |
Extraer el Nombre y la Organización a la que está registrado Windows | Cecil | API de Windows | 4 | 22-12-2007 08:56:59 |
Tipo de dato mas adecuado, para un campo de moneda | Chogo | Firebird e Interbase | 9 | 08-08-2007 15:03:00 |
No encuentro el evento adecuado | Delfino | Conexión con bases de datos | 5 | 24-10-2003 14:19:00 |
|