Ejecución de mi programa una sola vez

Hola, tengo un programa hecho en delphi 6. Quisiera saber si hay alguna forma de que cuando mi programa esté en ejecución si vuelvo a ejecutar el .exe no lo active. En pocas palabras de que sólo se ejecute una sola vez. Agradezco su tiempo
Respuesta
1
Bueno lo que pides no es difícil de hacer y puedes abordarlo desde distintas perspectivas.
1)Sabes que puedes acceder al administrador de tareas desde tu aplicación al inicio, y preguntar que si ya ella existe abortas con el procediiento TerminateProcess; el inconveniente de esto es que si tu programa lo cambian de nombre se puede ejecutar varias veces (Falla la protección)
2) Crear una DLL de control de carga; esta si no puede ser cambiada, y cuando ocurre el proceso DLL_Attach ella se carga en la memoria y podrías tener una bandera de control y bueno si es positiva suprimir la carga del nuevo programa sin importar el nombre ni el administrador.
3) Uno de los menos engorrosos es el uso del Registry la base de datos de windows, específicamente en la llave HKEY_LOCAL_MACHINE/tu empresa/tu software crear una llave de existencia temporal; que sea leída y que sus existencia sea solo durande la ejecución del programa y si esta existe suprime cualquier nueva apertura en forma auromatica. Pero recuerda si tu software se cuelga o se te olvida borrar esta bandera tendrás que hacer un ciclo de protección de apertura tal vez con con otra bandera. REcuerda el registro de windows se maneja de manera sencilla con el objeto TRegistry en la unidad del mismo nombre.
Bueno espero que tengas existo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas