-->

quinta-feira, 28 de janeiro de 2010

Como descobrir a que processo pertence uma janela / diálogo / mensagem.

Eu tive esse problema ontem. Aparentemente do nada, esta mensagem estava aparecendo na tela:




A mensagem original tinha 1314 pixels de largura e tive que recortar e reduzir para poder exibir aqui. O pedaço suprimido continua a seqüência incompreensível de caracteres.

Não há nenhuma indicação de que programa está exibindo a mensagem. Usei ALT+TAB para alternar entre os programas abertos e depois minimizei e restaurei cada programa para ver se era uma das maluquices de "Z-order" que de vez em quando acontecem no Windows, mas não era. Nenhuma aplicação assumiu a paternidade da mensagem.

Cliquei em Abort e a mensagem sumiu, mas depois de cinco minutos tornou a aparecer.

Deixei a mensagem sendo exibida e fechei vários programas. Continuou lá.

Eu sabia que podia descobrir indiretamente quem estava fazendo isso usando o Process Monitor, mas o caminho por ele é suficientemente complicado para eu sempre procurar um meio mais fácil antes. Enquanto eu fazia os testes eu estava tentando me lembrar de qual utilitário me permitia descobrir a que processo pertencia uma janela qualquer. Só parei de chutar quando me lembrei: O Process Explorer também faz isso.


Basta clicar no ícone em forma de alvo e arrastar até algum elemento da janela que você quer testar, até que esse elemento se destaque. No meu caso eu precisei arrastar sobre um dos botões (Abort, Retry) para o destaque aparecer.

Ao soltar o botão do mouse o Process Explorer mostra qual é o processo "pai".



Edit: Conforme foi bem lembrado no primeiro comentário, o Windows já tem suporte embutido a isso no Gerenciador de Tarefas. Basta que a janela apareça na aba "aplicações":



E isso funciona desde o Windows 2000.

Foi então que "caiu a ficha". Alguns minutos antes do problema começar, no momento em que ligava o meu adaptador bluetooth o Netmeter travou (provavelmente se atrapalhou com as conexões de rede bluetooth criadas repentinamente pelo adaptador). Eu fechei o programa e "esqueci". Só não percebi que eu havia apenas fechado a janela mas o processo continuava lá, acusando erro.

Vergonhosamente, essa não foi a única coisa que eu eu não percebi.

Eu estou usando o Windows Seven, e sua janela do ALT-TAB dá mais informações que o XP:


O diálogo é a segunda janela da esquerda para a direita. Perceba como o Seven mostra o ícone da aplicação responsável. Eu estou tão acostumado a simplesmente dar ALT-TAB até chegar até o que quero, apenas conferindo o título, que estava cego para esse detalhe acrescentado pelo Seven.

6 comentários:

  1. No Windows XP, tem um método de "pular" para o processo correspondente à janela, clicando com o botão direito sobre a entrada mostrada na aba "Aplicativos", do Gerenciador de Tarefas. Não sei se todos já sabem isso, e não sei se funciona sempre, mas quando tem muito processo aberto, uso esse atalho para pular para um processo que travou, de modo a matá-lo.

    Fica ai uma dica para quem ainda não conhece, e também não gosta de garimpar um processo em uma enorme lista.

    ResponderExcluir
  2. Anônimo,

    Eu conheço esse método mas vivo esquecendo dele. Testei agora e teria funcionado com o erro provocado pelo Netmeter (propositalmente eu ainda não encerrei o processo problemático).

    Obrigado por me lembrar disso!

    ResponderExcluir
  3. eheheh.. Normal Jefferson.

    Muitas vezes nos esquecemos das soluções mais simples e efetivas, e ficamos como eu digo "procurando pelo em ovo".

    Isso faz parte da profissão que resolvemos seguir :)

    ResponderExcluir
  4. Adorei a ideia do xp...valeu, anonimo! :D Agora seria legal o inverso...

    ResponderExcluir
  5. Qual é o primeiro programa que está rodando ali no Seven? Você usa ele para editar imagens?

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.