PDA

Ver la Versión Completa : Como hacer que solo pueda haber una sesion de la aplicacion


novaten
04-06-2005, 13:09:51
Pos eso, estoy haciendo una aplicacion y lo que me interesa es que cuando se ejectue solo deje una abierta a la vez, es decir si quiero arrancar la aplicacion por segunda vez, que no me deje hacerlo, un saludo.

Koder
04-06-2005, 15:38:15
Hola novaten

Hay varias formas de solucionar ese problema, esta es la que más me ha gustado ;)

En el uses de la fuente de tu aplicación debes incluir Windows y poner algo así más o menos


procedure No_Repetir_Applicacion;
var
hSemaphore: THandle;
begin
hSemaphore := CreateSemaphore(nil, 0, 1, 'My Aplication Name')
if (hSemaphore <> 0) and GetLastError = (ERROR_ALREADY_EXISTS) then
begin
{Aqui pones lo que quieres que haga antes de terminar
por ejemplo, mostrar un mensaje
o llamar la aplicación que se está ejecutando}
CloseHandle(hSemaphore);
Halt;
end;
end;

begin
No_Repetir_Applicacion;
Application.Initialize;
...
Application.Run;
end.


Espero te sea util. :cool:

Koder

novaten
05-06-2005, 11:14:05
muchas asias, como la seda :)