-->

sábado, 28 de novembro de 2009

Como saber que processo está usando uma porta serial.

Nota: Se você leu o título e pensou "mas quem é que ainda usa portas seriais?" deve ser novo aqui neste blog.

Eu esbarrei no problema fazendo testes com o Windows Seven. Nenhum dos programas para portas seriais que eu tinha (incluindo os feitos por mim mesmo) funcionava, não importando o que eu fizesse. A princípio achei que fosse frescura do Seven, mas fiquei intrigado ao não encontrar nenhuma menção a isso em uma rápida busca no Google.

Será que havia algum processo usando a porta? Não era para haver, porque a instalação era recente e eu não havia instalado nada consciente de que usasse portas seriais. O indispensável Process Explorer me deu a resposta. Basta usar Find - Find Handle or DLL... para procurar por "serial":

Edit: O Seven tem seu próprio meio de ver isso, sem requerer o Process Explorer. Mas falarei sobre isso depois.



\Device\Serial0 é o que costumamos chamar de "COM1", que é justamente a porta que eu não estava conseguindo usar. Basta clicar na linha com o processo para o PEx mostrar o processo na sua janela principal. Lá basta passar o mouse por cima do nome para ver quem é:



Este é o programa que meu sintonizador de TV instalou para monitorar o seu controle remoto. O danado (e por isso eu nem pensei nele) é que o controle é USB e então o programa não deveria estar abrindo minha porta serial.

Depois de "matar" o processo o problema foi resolvido.

Mais tarde eu constatei que o programa tinha as duas opções (USB e serial) e por algum motivo se configurou para a opção errada no Seven. Eu havia instalado o mesmo programa antes no XP, onde ele havia se configurado para a opção certa, por isso nem sabia que existiam opções.

Um comentário:

  1. Santas ferramentas da SysTernals. Eu ja passei por um problema com sintoma similar mas relacionado a portas no acesso a internet. Estava instalando o Apache no meu Windows 2000 Professional e ele reclamava que alguém ou alguma coisa já estava usando a porta 80 (listening).

    Se não fosse o TCPView, eu acho que ainda estaria procurando o culpado. O Skype!

    ResponderExcluir

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