Fórum Verificar se um programa esta sendo executado! #319460

18/04/2006

0

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

Responder

Posts

19/04/2006

Paulocesar1301

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:


Responder

Gostei + 0

21/04/2006

Joao.fli

Obrigado,

Funcionou perfeitamente...

Abração


Responder

Gostei + 0

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

Aceitar