Buscar

Saber se o aplicativo ja foi aberto

Código

Como evitar que um programa seja executado mais de uma vez.
        Muitos programas Windows permitem apenas uma cópia em execução de cada vez. Isto é interessante principalmente quando é um grande aplicativo, pois duas cópias ao mesmo  tempo usaria muito mais memória. Em aplicativos desenvolvidos em Delphi podemos ter esta característica.
  Vejamos:
 
  - Crie um novo projeto;
  - Mude o "Name" do Form1 para ADFormPrinc;
  - Altere o código-fonte do arquivo Project1.dpr
    conforme abaixo:
 
uses
  Forms, Windows,
  Unit1 in 'Unit1.pas' {ADFormPrinc};
 
{$R *.RES}
 
var
  Handle: THandle;
begin
  Handle := FindWindow('TADFormPrinc', nil);
  if Handle <> 0 then begin { Já está aberto }
    Application.MessageBox('Este programa já está aberto. A cópia ' +
      'anterior será ativada.', 'Programa já aberto', MB_OK);
    if not IsWindowVisible(Handle) then
      ShowWindow(Handle, SW_RESTORE);
    SetForegroundWindow(Handle);
    Exit;
  end;
  Application.Initialize;
  Application.CreateForm(TADFormPrinc, ADFormPrinc);
  Application.Run;
end.
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 28/04/07
Por: Kelton Forte
Visualizada: 9909 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009