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:
Código Delphi
[-]
RegistroValido := VerificarRegistro;
if NOT RegistroValido
then begin
ShowMessage('Hey amigo... tienes una copia ilegal del sistema');
MostrarVentanaDeRegistracion;
end
else begin
ShowMessage('Gracias amigo por usar una copia legal');
HacerAlgunaOperacionNecesaria;
end;
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,