어떤 프로세스가 직렬 포트를 사용하고 있는지 어떻게 확인합니까?
-
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 키+엘.직렬 포트를 여는 데 사용한 프로세스를 클릭하고 아래쪽 창을 통해 직렬 포트처럼 보이는 핸들을 확인합니다.보는 동안 포트를 열고 닫을 수 있으며, 파일 핸들이 나타나고 사라지고 녹색이나 빨간색으로 강조 표시되어야 합니다.물론 이는 직렬 포트가 두 개 이상이거나 진단하려는 직렬 포트가 일부 미스터리 프로세스에 의해 항상 잠겨 있지 않은 경우에만 가능합니다.