Verificar se um programa esta sendo executado!

Delphi

18/04/2006

Boa Tarde a Todos,

Qual é forma de se verificar se um programa esta sendo executado no Windows atraves do Delphi?

Eu preciso manter um programa em Delphi rodando enquanto outro programa (não Delphi) estiver sendo executado.

Utilizo Delphi 7

Obrigado.


Joao.fli

Joao.fli

Curtidas 0

Respostas

Paulocesar1301

Paulocesar1301

18/04/2006

Se souberes o nome do executável: [color=red:58ecb0fa52][b:58ecb0fa52]uso em dll, mas funciona fora tb[/b:58ecb0fa52][/color:58ecb0fa52]

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;


Use assim:
If PrgRodando(´nome do executavel.exe´) Then
  PodeBrincar
Else
  NãoPodeBrincar;


Senão souber o nome do executável, podes ir pelo nome da janela:

Var hWND: THandle;

hWND := FindWindow(nil, ´Nome da Janela do Aplicativo´);

If hWND = 0 Then
  NãoPodeBrincar
Else
  PodeBrincar;


Abraços e Bons Códigos :wink:


GOSTEI 0
Joao.fli

Joao.fli

18/04/2006

Obrigado,

Funcionou perfeitamente...

Abração


GOSTEI 0
POSTAR