2009-03-31 3 views
2

win32에서 winapi를 사용하면 com0 이상에서 실제로 어떤 컴 포팅이 장치로 존재하는지 알 수 있습니까?어떤 통신 포트가 있습니까? Win32

지금은 (0-9) 모두 열려고 시도하고 있지만 다른 사람이 사용하고 있기 때문에 존재하지 않는 것과 단순히 존재하지 않는 것의 차이를 알아낼 수는 없습니다. 그것. 두 상황 모두 동일한 마지막 오류를 반환하는 것 같아서 시스템에서 사용할 수있는 모든 콤 포트를 나열 할 수 있는지 궁금합니다.

+0

아마도 10 개 이상의 COM 포트가있을 수 있습니다. 내 Bluetooth 장치는 정기적으로 예를 들어 COM20 위에 포트를 가져옵니다. – Joey

답변

1

QueryDosDevice()을 호출하고 첫 번째 매개 변수에 null을 전달한 다음 결과를 구문 분석 할 수 있다고 생각합니다.

1

"enumerate com ports"를 (를) 검색하십시오. This은 링크 예입니다.

0

이름은 불행하지만 "SetupAPI"는 Windows API의 관련 부분입니다. 장치 인터페이스 클래스 GUID_DEVINTERFACE_COMPORT에 대해 한 번 SetupDiCreateDeviceInfoList으로 전화하십시오. 그런 다음 SetupDiEnumDeviceInfo으로 전화하여 GetLastError()==ERROR_NO_MORE_ITEMS까지 색인 0에서 반복적으로 호출하십시오.

관련 문제