DELPHI MANIA
www.delphimania.com.ar
 
 
 
  Delphi Mania  >> Trucos >> Aplicaciones
 
   
   
   
   
 
   
   
   
   
   
     
     
     
     
     
     
     
 
Pregunta:¿Cómo puedo detectar si mi aplicación está corriendo?
 

Grupo: Aplicación

Versiones    : D1 D2 D3 D4 D5 D6
Fecha: 07/11/01 Enviado por : Delphimania
Ejemplo D6: Instancias.zip  

Respuesta:

      Para detectar si tu aplicación ya está corriendo puedes usar "átomos". Windows cuenta con una tabla global donde se pueden dejar cadenas de caracteres (Strings)   a los que denomina átomos. En tu aplicación podrías consultar esta tabla buscando  un string determinado. Si lo encuentras, entonces tu aplicación estará corriendo, y   si no lo encuentras lo agregas. Al finalizar la aplicación debes eliminar este string de  la tabla.
      Debes tener cuidado de que tu aplicación termine normalmente, ya que en caso contrario tu string quedará en la tabla y al ejecutar tu aplicación, esta no correrá nuevamente hasta que reinicies Windows.
      El código es el siguiente, no olvides poner en la cláusula uses, Windows para las funciones de los átomos, y Dialogs para ShowMessage :

program TestInstancias;

uses Windows, Dialogs, Forms,
     utMainInstancias in 'utMainInstancias.pas' {Form1};

{$R *.RES}
Const
StrAtomo = 'Mi Aplicación';

Var
IdAtomo: Word;

begin

  If GlobalFindAtom( StrAtomo ) = 0 //No lo encuentra?
   Then
    Begin //Agrega String y Obtiene id del atomo
      IdAtomo := GlobalAddAtom( PChar(StrAtomo) );
      Application.Initialize; //Ejecuta aplicacion normalmente
      Application.CreateForm(TForm1, Form1);
      Application.Run;
      GlobalDeleteAtom(IdAtomo); //Elimina el Atomo
    End
    Else ShowMessage('¡La Aplicación ya está corriendo!');

end.

 
 
 
 
   
DELPHI MANIA  
 
Las marcas que aparecen en esta pagina pertenecen a sus respectivas empresas
Todos los derechos reservados - Copyrigth 2001 ©