GARANTIR DESCONTO

Fórum verificar se um exe está rodando e como trazer p/ frente? #241787

06/07/2004

0

Como faço para colocar um determinado executável para frente?
Tenho um .exe que chama um outro .exe, sem usar <ALT> + <TAB> como faço para que no click ou em outro evento qualquer um determinado executável seja trazido para frente???

e outra, como faço para verificar se um determinado programa está aberto??


Rdf

Rdf

Responder

Post mais votado

05/01/2005

eu tenho a solução amanhã eu posto aqui pra vc´s!

valeu
[/code]


Paullsoftware

Paullsoftware
Responder

Gostei + 1

Mais Posts

07/07/2004

Rdf

Colegas,
vasculhado o próprio fórum do clube delphi, encontrei muitas possibilidades de verificar se uma aplicação encontra-se em execução.
E para completar minha segunda resposta procurei no site do msdn, onde encontrei uma API para ´jogar´ a aplicação para frente. A seguir a solução encontrada:

procedure verifica;
var
  nHandle: HWnd;
begin
  nHandle := FindWindow(nil, ´titulo programa´);

  if nHandle <> 0 then
    BringWindowToTop(nHandle); // traz para frente
end;


Isso funciona bem, porém se a aplicação que deve ser exibida em primeiro plano estiver minimizada, o foco é setado nela, contudo ela não é maximizada, ficando esta ativa na barra de programas!!!

Tentei usar uma chamada a função ´SendMessage()´ passando ´ws_maximize´, porém não estou conseguindo capturar essa mensagem na aplicação destino!!

Resumindo: Gostaria de saber como faço para capturar mensagens enviadas através de algum procedimento/função do windows???

Desde já agradeço!!


Responder

Gostei + 0

25/01/2006

Mordred

Olha, encontrei esta API em outro tópico aqui do fórum. Ela realmente traz a janela para frente ao invés de fazer o botão da aplicação piscar na barra de tarefas MAS não joga o foco para a janela.
SetWindowPos(Hwnd,Hwnd_TopMost,0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE);


Eu, por exemplo, tenho uma aplicação Ponto de Funcionário que recebe o código do funcionário em uma edit e às vezes o sistema aparenta perder o foco da edit. Pus o código dessa API em um timer para trazer a janela para a frente seguido de um Edit.SetFocus. A tela aparece com o cursor piscando bonitinho dentro da edit, MAS, se você tentar digitar, espantosamente nada acontece. Pode usar o comando que quiser pra tentar trazer a janela para frente, se vc não der um clique na janela, não funciona.

Será que alguém conhece alguma solução para esse problemão?


Responder

Gostei + 1

10/02/2006

Adalberto

Tente fazer o seguinte:

No lugar da constante SWP_NOACTIVATE (que indica que a janela não deve ter o foco), coloque a constante SWP_SHOWWINDOW).

Acho que deverá funcionar...

Blz ?


Responder

Gostei + 1

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

Aceitar