어떤 프로세스가 직렬 포트를 사용하고 있는지 어떻게 확인합니까?

StackOverflow https://stackoverflow.com/questions/42197

  •  09-06-2019
  •  | 
  •  

문제

제가 일하는 회사는 직렬 포트를 통해 컴퓨터와 통신하는 하드웨어를 만듭니다.제3자 회사는 당사 하드웨어와 통신하는 소프트웨어를 작성합니다.

하드웨어를 진단해야 할 때가 있습니다.그러나 Windows가 시작될 때 타사 소프트웨어 앱이 직렬 포트에 연결되어 다른 연결을 차단합니다.이 애플리케이션/서비스의 이름을 모르고 항상 동일한 것은 아닙니다.

다음 중 하나를 수행할 수 있는 방법이 있습니까?

  • 현재 특정 직렬 포트를 사용하고 있는 앱/서비스의 이름/pid를 찾습니다.
  • 다른 앱에서 직렬 포트 연결을 훔칩니다.

vb.net을 선호하지만 언어에 구애받지 않는 답변도 취하겠습니다.

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 프로세스 탐색기 열린 핸들을 검색하기 위한 SysInternals 도구도 있습니다.이 경우에는 com 포트 번호에 매핑되지 않을 수 있는 장치 이름을 사용하므로 'Serial'을 검색할 수 있습니다.(예:내 시스템에서는 COM1이 \Device\Serial0입니다.

다른 앱에서 직렬 포트를 제어하려면 드라이버의 협조가 필요할 것 같습니다.

다른 팁

처럼 롭 워커가 말했다., 다음을 사용하여 직렬 포트를 사용하는 사람을 찾을 수 있습니다. 프로세스 탐색기.대부분의 경우 타이핑을 하면 Ctrl 키+에프 "serial"을 검색하면 누가 직렬 포트를 열었는지 알 수 있지만 "COM3" 직렬 포트의 핸들이 "\Device\VCP0"으로 나타나는 상황이 발생했습니다.USB-직렬 커넥터를 사용하는 VirtualBox에서 실행 중이었기 때문에 이상할 수 있습니다.

"serial" 및 "device\vcp"를 검색해도 결과가 나오지 않으면 알려진 프로그램으로 직렬 포트 핸들을 열어서 직렬 포트 핸들의 이름이 어떻게 지정되는지 알아낼 수 있습니다.프로세스 탐색기에서 다음을 입력하여 각 프로세스의 열린 핸들이 있는 아래쪽 창을 표시합니다. Ctrl 키+.직렬 포트를 여는 데 사용한 프로세스를 클릭하고 아래쪽 창을 통해 직렬 포트처럼 보이는 핸들을 확인합니다.보는 동안 포트를 열고 닫을 수 있으며, 파일 핸들이 나타나고 사라지고 녹색이나 빨간색으로 강조 표시되어야 합니다.물론 이는 직렬 포트가 두 개 이상이거나 진단하려는 직렬 포트가 일부 미스터리 프로세스에 의해 항상 잠겨 있지 않은 경우에만 가능합니다.

시스인터널스 시스템에 어떤 프로세스가 수행되고 있는지 추적하는 데 매우 유용하고 교육적인 유틸리티가 많이 있습니다.

그들은 당신이 필요로 하는 것을 정확히 수행하는 유틸리티를 가지고 있습니다. 포트몬, 을 클릭하고 페이지 하단에 작동 방식에 대한 정보를 제공하세요.해당 정보와 몇 가지 자주 묻는 질문을 통해 유틸리티가 충분하지 않은 경우 직접 구현하는 데 필요한 모든 것을 얻을 수 있습니다.

-아담

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top