exe em execução

13/12/2005

Ola amigos como posso fazer para verificar se o meu exe ja esta em execução

usei esse codigo mas não funciona

var
Hwnd:THandle; //VARIAVEL NECESSARIA
begin

Hwnd:=FindWindow(´Tfrmprincipal´,´FastContact´);
if hwnd=0 then
begin
Application.Initialize;
Application.Title := ´Fast Contact´;
Application.CreateForm(Tfrmprincipal, frmprincipal);
Application.Run;
end
else
begin
if not IsWindowVIsible(Hwnd) then
begin// se minimizado
ShowWindow(Hwnd, SW_ShowMaximized); //mostra
PostMessage (Hwnd, Wm_user, 0,0); //restaura
end;
SetForegroundWindow(Hwnd); // visivel
end;


Uiliangurjon

Respostas

13/12/2005

Marcio.theis

Eu pelo menos utilizo de uma outra forma, fiz um projeto de teste, de uma olhada:
program Project1;

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

{$R *.res}

var
    hMyMutex: tHandle;
begin
hMyMutex:=CreateMutex(nil,True,PChar(Uppercase(ExtractFileName(Application.ExeName))));
if (hMyMutex = 0) or (GetLastError = error_Already_Exists) then
    begin
    ShowMessage(´A aplicação já esta rodando. ´);
    Application.Terminate;
    end;
try
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
finally
    ReleaseMutex(hMyMutex);
    end;
end.



Responder Citar

15/12/2005

Uiliangurjon

como faço para que se o aplicativo estivar aberto ele seja maximizado


Responder Citar