Delphi - Ejecutar una sola vez

 
Vista:
sin imagen de perfil

Ejecutar una sola vez

Publicado por Anel (78 intervenciones) el 21/01/2005 15:49:09
Como puedo impedir que mi aplicacion se ejecute mas de una vez?

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar una sola vez

Publicado por skull leader (284 intervenciones) el 21/01/2005 16:01:45
puedes usar algun componente para evitar las instancias de tu aplicación o algo como esto:

añadir
forms,
windows,
dialogs


var
Instancia: THandle;

begin
Instancia := CreateMutex(Nil, True, 'appMutex');
if Instancia <> 0 then
begin
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Application.MessageBox('Imposible abrir la aplicación, existe otra en ejecución actualmente', 'Error', MB_ICONERROR + Mb_Ok);
CloseHandle(Instancia);
Halt;
end;
end;
...
resto del codigo
end;

esto va en el codigo del proyecto
(Project -> View Source)

a mi me funciona
cualquier duda, aqui estamos
suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar una sola vez

Publicado por Delfino (1216 intervenciones) el 22/01/2005 21:01:54
la suite JVCL tiene un componente q al ponerlo sobre la mainform y activarlo impide lanzar otras instancias de la misma aplicacion
la lista gratuita de los LMD (lmdinnovative.com) tiene un componente similar..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar una sola vez

Publicado por Mr. Sade (76 intervenciones) el 26/01/2005 23:24:45
ya te dieron un codigo, pero se puede hacer con mutex, eventos, etc.
mi preferido es usando segmentos compartidos, pero delphi no lo soporta :P
en segmentos compartidos puedes leer variables de otra instancia del programa, esto lo puedes lograr usando CreateFileMapping y demas... en delphi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar