![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
como dice Delphius, creo que es un problema de diseño
1.- iniciar aplicación 2.- comprobar si tenemos algun registro de id de disco duro / usuario 2.1.- si no lo tenemos: creamos la form de registro y lo registramos con un user y con el ID de disco duro 2.1.- si lo tenemos, pero es invalido, avisar y salir (posible reinstalación en otro pc) 2.2.- si lo tenemos, y es valido, continuar... ... creo que esta es tu idea. Siguiendo esta idea, si te fijas, solo habra un único registro, y por lo tanto un único usuario, por lo que no tiene mucho sentido crear un registro de usuarios. Lo mejor seria simplemente, olvidarse del 'usuario'y del form del registro, que es lo que te esta creando confusión pues son innecesarias, y registrar la aplicación con el ID del disco duro. 1.- iniciar aplicación 2.- comprobar si tenemos el id del disco duro (por ejemplo, en un fichero, grabado en un recurso o bien en el registro como indicaba dec) 3.- si no lo tenemos, lo leemos y lo grabamos en nuestro programa (o registro, fichero, etc...) 3.- si lo tenemos, lo recogemos y comparamos con el del disco duro 3.1 - fallo : avisamos y salimos 3.2 - no fallo : se continua... .... PD: si por el contrario aun quieres que se registren los usuarios (varios de ellos) entonces forzosamente te tiene que aparecer el form de registro o login al principio de la aplicación para comprobarlo con tu base de datos. PDD : aun, si quieres q tu aplicación corra en varias maquinas, un usuario por maquina, deberia ser algo asi 1.- iniciar aplicación 2.- leer id de disco duro 3.- comprobar en base de datos si existe ese id 3.1 - si no existe : posible nueva instalación. Se abre el form de registro, pidiendo user y el id, y se graba en base de datos 3.2 - si existe se continua como ves, este ultimo ejemplo registraria una nueva instalación con un nuevo usuario, pero si te fijas no sirve absolutamente de nada, al menos como protección de copia, pues si lo reinstalas en otro pc simplemente te pediria un nuevo usuario y continuaria. si por el contrario la lista de usuarios ya te es conocida, entonces lo mejor seria: 1.- iniciar aplicación 2.- pedir usuario 3.- comprobar usuario en base de datos 3.1.- existe : pedir id 3.1.1.- leer id de disco duro y comparar con la entregada 3.1.1.1.- fallo : aviso y salir 3.1.1.2.- no fallo : continuar normalmente 3.2.- no existe : pedir nuevo usuario o bien avisar y salir este ultimo caso seria para proteger 'cada pc', para que usuarios que no sean el habitual no tengan acceso (aunque claro esta conociendo el usuario, ya se entraria, por lo que no es tampoco demasiado eficiente). Creo q lo mejor es que nos digas de q quieres proteger el programa : de copia digamos ilegal o de acceso de usuarios invalidos. Última edición por coso fecha: 12-07-2008 a las 16:48:21. |
|
#2
|
|||
|
|||
|
un ejemplo (aunque es casi lo mismo que puso dec)
no se... creo que poco mas se puede decir ![]() a ver si te sirve entre todos saludos |
|
#3
|
||||
|
||||
|
Saludos amigos, muchisimas gracias Coso por colaborarme en el codigo, y ati delphius como siempre me ayudas, jeje, miren lo que yo quiero, es proteger mi aplicacion de lo siguiente:
Vendi mi aplicacion a un Gimnasio, le di el instalador y listo, el instalo el .exe de mi aplicacion en su pc y las bases de datos correspondientes, ...pero hay un problema si el dueño del Gimnasio coje y copia mi aplicacion o simplemente coje el Cd de instalacion que yo le di, e instala mi aplicacion en otro pc, o mejor dicho vende mi aplicacion a otro Gimnasio....entonces necesito seguridad de que si otra persona va a instalar mi aplicacion no pueda...que la aplicacion solo corra en los Gimnasios autorizados, osea los que me compran la aplicacion....y que una vez este instalada la aplicacion y el le de copiar al .exe y a las bases de datos y los pase a otro pc no pueda...pues ahi es donde emepieza a funcionar el Id del disco duro.....entonces miren lo que estoy tratando de hacer: 1. Para evitar que los Gimnasios que tengan mi cd de instalacion y traten de instalarlo no puedan, pues facil, siempre que vendemos la aplicacion y se instala ella genera el formulario que les digo que es el formulario de seguridad....este Formulario contiene lo siguiente: * Serial: el serial es un codigo standar que nostros grabamos, para que se pueda instalar la aplicacion....ejemplo de lo que estoy explicando:
como se pueden dar cuenta el serial esta predefinido en tiempo de programacion y el codigo seria es xxxxxx, entonces ese codigo siempre lo colocamos nostros apenas instalemos la aplicacion, por que eso es lo bueno, que nostros mismos vamos e instalamos nuestra aplicacion....asi que ese codigo solo lo sabemos mi compañero y yo...por ese lado evitaria que me copien la aplicacion desde el cd de instalacion que yo doy... * Id: el Id del disco duro lo que me ayudaria a evitar es que me copien la aplicacion despues de instalarla en el pc del Gimnasio obtenga la aplicacion....ejemplo de lo que digo: Me compran la aplicaicon, la instalo en el pc del gimanasio, el dueño le da copiar a mi .exe y a las bases de datos, y le da pegar en otro pc, y listo queda de una mi aplicacion en otro pc, entonces si tengo el Id del disco duro, en una Base de datos o un archivo, como sea mas facil, pues simplemente que me genere la consulta siempre que se ejecute la aplicacion que si el Id es <> no me deje ejecutar la aplicacion. Pero una de las cosas que quiero hacer y a lo mejor no me explique es lo que mencione anteriormente lo del Serial y el Id, ya saben por que el serial y por que el Id, lo que deseo es pues cuando la aplicacion se ejecute por primera vez me arroje el formulario de Seguridad e inmediatamente proceda a insertar los datos de Serial e Id...y se ejecute la consulta respectvia si los datos son correctos permita continuar con la aplicacion si no, pues simplemente emitir un shomessage('Datos de registros incorrectos'); y cierre la aplicacion, a eso se le puede agregar lo que decia coso, que si el numero de intentos es > 5 cierre la aplicacion---, lo otro es que una vez registrado el cliente no vuelva a salir el formulario, pero que siempre que se ejecute la aplicacion se ejecute la consulta de que si el Id es correcto....y si algun caso el Id no llega a ser correcto eso indica que la aplicacion esta en otro pc.... e inmediatamente vuelva a generar el formulario de ingrese Serial e Id.... ....eso es lo que nesecito....y Coso, por archivos me parece como mas facil, segun tu codigo, pero no soy tan avanzado como tu, me gustaria que me pasaras un tutorial de archivos, pues tu das una buena opcion de almacenar el Id en un archivo pero no tengo ni idea como crearlo...no se como es la sintaxis, ni los parametros del archivo que mencionas, en fin espero que me puedas explicar con plastilina, jejeje, es que el tiempo apremia me toca entregar la aplicacion este martes, y necesito eso para que no me la roben, ya basta que aqui en Colombia, piratean todo...hay que tener cuidado con eso...les agradesco que me puedan colaborar....y espero que esta vez me hallan entendido mas....me demore mucho planteando bien mi pregunta...ha y por ultimo, esta es la funcion que tengo para extraer el Id:
Posdata: Tengo una aplicacion aparte que me extrae y me muestra por pantalla el Id del pc, entonces solo es insertar el Id de mi aplicacion en mi formulario de seguridad y comprobar si ese Id corresponde al del Pc...Gracias amigos por todo su tiempo prestado... |
|
#4
|
|||
|
|||
|
Hola, me da la impresion que el problema no es que te demores planteando la pregunta, sino que no escuchas las respuestas
si tienes otro programa donde coger la id, personalmente usaria este para 'marcar' tu aplicación con el id del disco duro (comprobando el serial) y luego al cargar la aplicación que se leyera directamente de ella misma y comprobase que es la misma. Para grabar en un archivo, te dejo este link Hoy es domingo, pero si tengo tiempo ya preparare un ejemplo (yo de ti por eso, no me esperaria ) Saludos. |
|
#5
|
||||
|
||||
|
Saludos Coso, jajaj, brother a cuando digo que tengo un programita aparte para sacar el Id es para no incluirlo dentro del formulario de seguridad...pero en lo que estoy confundido, es en como hago para que el formulario solo aparezca una vez, osea apenas se ejecute la aplicacion por primera vez, y que genere la consulta de que si los datos son correctos continue la aplicacion si son incorrectos termine la aplicacion, y que no vuelva a salir nunca mas....excepto si la aplicacion la intentan ejecutar desde otro pc, que vuelva a salir el formulario de seguridad.....
En pocas palabras que el formulario salga la primera vez de ejecucion pida datos y listo, no vuelva a salir, pero que siempre que se ejecute la aplicacion el haga internamente la consulta de que el Id que esta guardado en el archivo es = al Id que el esta extrayendo....y cuando el Id sea <> que vuelva a salir el formulario...que copdigo se utiliza ??, y no tanto el codigo si no en que evento lo ubico ??? gracias Coso has sido de gran ayuda hombre.... |
|
#6
|
|||
|
|||
|
si vamos, lo que ya te han respondido 5 veces seguidas...si lo que quieres es que te hagamos la faena, creo que estas en el sitio equivocado
|
|
#7
|
||||
|
||||
|
mmm...solo necesito saber en que evento del formulario ubico el codigo que me han dado, para lo que aparezca solo una vez y ya...eso es todo...por eso dije que no me importa tanto el codigo....y sabes Coso, no me gusta que me hagan las cosas, es que cuando llebas como 4 o 5 meses programando apenas con Delphi y solo te enseñan lo mas basico de este mundo, es un poco duro aprender solo....pero hay voy entonces por favor no diga que yo quiero que me hagan mi trabajo, por que no soy parasito brother, y gracias....
|
|
#8
|
||||
|
||||
|
Cita:
Cita:
Mira, esto es cuestión de lógica ![]() Cita:
Solo hay algo que no me checa de todo esto Cita:
![]() ![]() ![]() ![]() Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#9
|
||||
|
||||
|
Hola BuRtOn,
Dime, sin ofender ¿Estoy hablando en chino? ![]() Porque no comprendo que no te hayas dado cuenta de lo que coso y yo te hemos estado diciendo. ¿Tanto cuesta hacer que cuando se crea la ventana principal hacer el chequeo de si está registrado el usuario y en base a ello decidir si se debe mostrar la ventana de registración o sino dar por válido la copia del ejecutable? Veamos esto bajo la lupa: 1. En el evento OnCreate de tu form principal debes tener algo como esto:
VerificarRegistro es una función que cumple con el propósito de hacer la "consulta" y determinar si el usuario tiene una copia registrada. Ya sea que deba consultar a una base de datos, mirar en un archivo oculto, en el regitro de windows, no importa... Lo que interesa es que VerificarUsuario tiene la capacidad de saber si el sistema fue registrado apropiadamente. Y bueno, se pregunta si esta todo en orden (debidamente registrado), si no lo está se muestra el form de registración y si está en orden simplemente se deja continuar con el trabajo: se habilitan los menues, se lanza el cuadro de login si es necesario, etc (eso ya depende de tu sistema). ¡Y listo! ¿Que más simple que esto? ¿Que sucede? He aqui una explicación del tema: 1. En la primera vez que se inicia el ejecutable, VerificarRegistro devuelve FALSE. Por tanto, habilitará el form de registro y mostrará el cartelito necesario. 2. El usuario por tanto se ve obligado a registrar el software. Si no lo registra, el sistema seguirá arrojando el cartelito y el form de registro. No está demás decir que el sistema debe diseñarse para que esta form de registro sea en forma modal y que las opciones de menu y otras cosas estén inhabilitadas a excepción de las que permiten llevar al form de registro. Aunque todo esto dependerá de como esté hecho el sistema. 3. Una vez que el usuario registra apropiadamente el software, VerificarRegistro devolverá TRUE, por tanto seguirá el curso normal de trabajo. BuRtOn, ¿Se entiende ahora? Por cierto, yo que tu reemplazaría esos ShowMessage() por Application.MessageBox(), es mucho más estético y profesional. Saludos, |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Abrir un formulario hijo solo una vez | Walterdf | Varios | 5 | 08-04-2008 17:15:01 |
| dll + mostrar formulario | albertoP | OOP | 1 | 04-12-2006 08:21:20 |
| mostrar sólo 5 caracteres de un varchar(75) | Giniromero | Firebird e Interbase | 4 | 19-09-2006 12:37:41 |
| mostrar solo dos decimales | clanmilano | Varios | 1 | 15-11-2005 23:31:52 |
| mostrar SOLO cliente de los que tengo un sólo registro | Giniromero | SQL | 15 | 11-06-2004 12:33:19 |
|