Array
(
)

exe em execução

Uiliangurjon
   - 13 dez 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;


Marcio.theis
   - 13 dez 2005

Eu pelo menos utilizo de uma outra forma, fiz um projeto de teste, de uma olhada:
#Código


program Project1;

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

{$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.



Uiliangurjon
   - 15 dez 2005

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