Selecao DevMedia QUERO SER PRIME

Fórum Verificar se aplicação está sendo executada. #367573

07/01/2009

0

Pessoal, alguem sabe como faço para verificar se uma aplicação está sendo executada através de seu processo?

Obrigado


Edusjc

Edusjc

Responder

Posts

07/01/2009

Edjlle

Se for para encontrar um executável rodando:

var
  hHandle: THandle;
  sExename: string;
begin
  // Supondo que o nome do main form seja Form1
  hHandle := FindWindow(´TForm1´, nil); 
  if hHandle = 0 then
  begin  
    // Teste.exe é o nome do executável            
    sExename := ExtractFilePath(Application.ExeName)+´Teste.exe´;
  end
  else
  begin
      // Executa o programa - se estiver no drive C
      if ShellExecute(Handle, PChar(´open´), PChar(sExename),
                    0, PChar(´C:\´), SW_SHOWMINNOACTIVE) <= 32 then
      ShowMessage(´Executável não encontrado´);



Responder

Gostei + 0

07/01/2009

Edjlle

Cara, não tem nada a ver o código que eu escrevi aí, desculpe-me,
o código certo é:

var
  hHandle: THandle;
  sExename: string;
begin
  // Supondo que o nome da classe do main form seja TForm1
  hHandle := FindWindow(´TForm1´, nil);
  if hHandle <> 0 then
  begin
    ShowMessage(´Executável já rodando.´);
  end
  else
  begin
      // Executa o programa (chamado Teste.exe) - do diretório desta aplicação
      sExename := ExtractFilePath(Application.ExeName)+´Teste.exe´;
      if ShellExecute(self.Handle, PChar(´open´), PChar(sExename),
                    0, PChar(´C:\´), SW_NORMAL) <= 32 then
      ShowMessage(´Executável não encontrado´);
   end;
end;



Responder

Gostei + 0

07/01/2009

Edusjc

Mas nesse caso ele vai verificar se tem alguma janela com um determinado caption certo? Não existe algum modo que ele verifica o exe dele no processo do task manager? Pois a minha aplicação deve ficar em um looping e só continuar depois que fechar esse executável que desejo verificar, e ele altera o titulo da janela várias vezes.

Obrigado


Responder

Gostei + 0

07/01/2009

Edjlle

Veja o link, tem um exemplo:
http://www.activedelphi.com.br/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=527&ttitle=Finaliza_Processos

Você precisará estar logado para baixar.


Responder

Gostei + 0

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

Aceitar