Array
(
)

Verificar se o Programa já está aberto

Cabal
   - 10 abr 2006

Como verificar se o Meu programa já está aberto?
Para ñ abri-lo novamente???


Rjun
   - 10 abr 2006

Pesquise no fórum por MUTEX.


Marco Salles
   - 10 abr 2006

citacao de Rjun

Citação:
Pesquise no fórum por MUTEX.

no minimo ele vai encontar uma dez mensagens assim :


Citação:

Citação:
citacao de Rjun

Citação:
Pesquise no fórum por MUTEX.



Citação:
citacao de Rjun

Citação:
Pesquise no fórum por MUTEX.


.......


Citação:
citacao de Rjun

Citação:
Pesquise no fórum por MUTEX.


brincadeirarinha em los ermanos


Paulocesar1301
   - 10 abr 2006

Você pode usar um FindWindow da vida ou:

#Código


Uses
TlHelp32;

function PrgRodando(Executavel: WideString): Boolean; Export; StdCall;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
Result := False;
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(Executavel)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(Executavel))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;



Martins
   - 10 abr 2006

Coloque o código abaixo no seu DPR.

#Código


var
Hwnd: Thandle;
begin
Hwnd := FindWindow (´TPrograma´, ´Programa´);
if Hwnd = 0 then
begin
Application.Initialize;
Application.CreateForm(TPrograma, Programa);
Application.Run;
end
else
begin
MessageDlg (´Já existe uma instãncia deste programa, verifique por favor!!´,mtinformation,[mbok], 0);
SetForegroundWindow (Hwnd);
end;
end.



Adriano Santos
   - 10 abr 2006


Citação:
Coloque o código abaixo no seu DPR.

#Código


var
Hwnd: Thandle;
begin
Hwnd := FindWindow (´TPrograma´, ´Programa´);
if Hwnd = 0 then
begin
Application.Initialize;
Application.CreateForm(TPrograma, Programa);
Application.Run;
end
else
begin
MessageDlg (´Já existe uma instãncia deste programa, verifique por favor!!´,mtinformation,[mbok], 0);
SetForegroundWindow (Hwnd);
end;
end.


Ae Martins, boa. Este realmente é o método mais usado.