A ver si comprendo.
¿Tienes dos aplicativos? Uno para el logueo y otro que se llama Adminsitración.exe? Porque eso es lo que comprendo al ver tu código
Si me pudieras aclarar ese puntito podría saber por donde van los tiros.
El llamado a una ventana Login se procede asi, en eso está bien. Una vez que se muestra, y se valida se cierra (y en ciertos casos, destruir).
Para evitar que en futuras ocasiones siga mostrando dicha ventana debes llevar un condicional. De manera simple en algo como esto:
if NOT VerificarQueAntesSeLogueo
then MostrarVentanaLogin
El tema está en que debes guardar en algun archivo (algún ini posiblemente), en el registro de Windows, base de datos... etc algun valor que te sirva de "bandera" y que puedas recuperar al ejecutar la aplicación.
El algoritmo básico es:
1. Inicialmente, en la primera ejecución, el valor para esta "bandera" será establecido para determinar que nunca se logueo.
2. Leer dicha bandera (desde un archivo, etc)
3. Si bandera la bandera no está presente... se muestra el form de login, en otro caso continua con lo necesario.
4. La ventana de login, al momento de validar, cambia el valor de dicha "bandera" por el negado. De este modo cuando se vuelva a ejecutar el programa leerá otro valor y por tanto no mostrará el form.
Dejame decirte que me resulta extraño ese comportamiento, ya que se espera por lo general que cada vez que se ejecute la aplicación se pida la clave o contraseña.
Y por cierto, lo mejor sería que implementes un algoritmo más seguro para la clave. Lo más adecuado sería guardarla en algún lugar encriptada.
Saludos,