GARANTIR DESCONTO

Fórum Apenas 1 instância do aplicativo #234073

24/05/2004

0

Oi,

Como faço p/ verificar se o meu aplicativo já está em execução? Para não permitir que a cada duplo-clique sobre o mesmo não se abra novamente uma nova instância... e sim maximize a que já está aberta!!!

Fiz o seguinte código no DPR, mas não deu certo!!

...
{$R *.res}

begin
if FindWindow(´TMainForm´, ´Aplicação de Teste´) <> 0 then
SetForegroundWindow(FindWindow(´TMainForm´, ´´))
else
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.

Mas aparecem erros:
1) ´ Undeclared identifier: ´FindWindow´ ´
2) ´ Undeclared identifier: ´SetForegroundWindow´ ´

Por favor, se puder me ajudar...


Fatima

Fatima

Responder

Posts

24/05/2004

Melo

program OnlyOne;

uses
Windows, Forms,
Unit1 in ´Unit1.pas´ ;

{$R *.RES}

begin
{ cria um mutex usando um nome único }
CreateMutex(nil, False, ´Aki vc coloca o nome da sua aplicação´);

{ verifica se houve erro na criação }
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, ´Este programa já está sendo executado’,
´Aviso´, MB_ICONSTOP);
Halt(0); // cancela execução
end;

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;

Espero ter Ajudado,
Melo


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar