[Lazarus-es] Evitar abrir la aplicación 2 veces
lazarus en differware.net
lazarus en differware.net
Mie Jun 23 16:59:01 CEST 2010
El 23/06/10 16:19, christian Ortiz escribió:
>
>
> El 23 de junio de 2010 02:14, José Antonio Cuello
> <josea en artextrading.com <mailto:josea en artextrading.com>> escribió:
>
> Hola,
>
> Hola
>
> quisiera controlar que en las pdas no me abran 2 veces el programa
> de gestión, de manera que la segunda vez que se abre el programa
> devuelva el foco a la aplicación ya existente y se cierre la nueva
> instancia del programa.
>
> No trabajes con clases estaticas, creala en tiempo de ejecucion y usas
> la funcion assign para ver si esta creada o no
ein ??
Creo que no lo entendiste, Christian.
En pda no se como irá, pero supongo que igual que en win32.
Tienes varias formas o soluciones y todas se basan en lo mismo: si la
bandera esta arriba, ya te estabas ejecutando.
Te enumero algunas posibles:
1. Usando un Mutex.
2. Usando un semaforo.
3. Usando un fichero temporal a modo de semaforo.
...
Personalmente suelo usar la primera forma en la siguiente manera:
Program p1;
[..]
var Mutex: THandle;
begin
Mutex := CreateMutex(nil, true, 'mimutex');
if (Mutex = 0) or (GetLastError = ERROR_ALREADY_EXISTS) then
begin
// si estoy aqui, es que ya me estaba ejecutando...
end else
begin
// aqui, soy el unico con ese mutex!
[..]
codigo de la aplicacion
[..]
// destruimos el mutex
if Mutex<>0 then
CloseHandle(Mutex);
end;
end;
No se que tal se verá...
Por cierto, ¿por qué no veo mis mensajes a la lista?
¿Tengo que hacer algo en especial?
>
>
> Alguien me puede indicar como hacer al arrancar el programa para mirar
> si ya está abierto. Gracias y un saludo.
>
> si no esta asignada la creas, si es lo contrario. solo la muestras...
>
>
>
> ________________________________________________________________________
>
> ARTEX TRADING S.A.
> José Antonio Cuello Principal
>
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> <mailto:Lazarus-es en lists.lazarus.freepascal.org>
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
>
> --
> Christian
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
More information about the Lazarus-es
mailing list