verificar se um exe está rodando e como trazer p/ frente?
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??
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
Curtidas 1
Melhor post
Paullsoftware
05/01/2005
eu tenho a solução amanhã eu posto aqui pra vc´s!
valeu
[/code]
valeu
[/code]
GOSTEI 1
Mais Respostas
Rdf
06/07/2004
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:
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!!
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!!
GOSTEI 0
Mordred
06/07/2004
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.
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?
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?
GOSTEI 1
Adalberto
06/07/2004
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 ?
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 ?
GOSTEI 1