반응형
현재 두 가지 다른 접근 방식을 알고 있습니다.
HARDWARE \\ DEVICEMAP \\ SERIALCOMM
레지스트리 키의 정보를 읽습니다. 좋은 옵션처럼 보이지만 강력한 인가요? 온라인이나 MSDN에서이 레지스트리 셀이 사용 가능한 포트의 전체 목록을 항상 보유하고 있다는 보장을 찾을 수 없습니다.
COMN
의 CreateFile
을 1에서 어떤 숫자까지 N으로 호출하려고합니다. 일부 COM 포트의 이름이 COMN이 아니기 때문에 이것만으로는 충분하지 않습니다. 예를 들어 생성 된 일부 가상 COM 포트의 이름은 CSNA0, CSNB0 등이므로이 방법에 의존하지 않습니다.
공유 할 다른 방법 / 아이디어 / 경험이 있습니까?
수정 : 그런데 다음은 레지스트리에서 포트 이름을 읽는 간단한 Python 구현입니다.
import _winreg as winreg
import itertools
def enumerate_serial_ports():
""" Uses the Win32 registry to return a iterator of serial
(COM) ports existing on this computer.
"""
path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM'
try:
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path)
except WindowsError:
raise IterationError
for i in itertools.count():
try:
val = winreg.EnumValue(key, i)
yield (str(val[1]), str(val[0]))
except EnvironmentError:
break
해결 방법
몇 가지 옵션을 사용할 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/1205383
반응형
'파이썬' 카테고리의 다른 글
파이썬 PHP implode에 해당하는 Python? (0) | 2021.02.10 |
---|---|
파이썬 속성으로 필터링 (0) | 2021.02.10 |
파이썬 MySQLdb conn.autocommit (True) 정보 (0) | 2021.02.10 |
파이썬 RGB 튜플 목록을 사용하여 PIL에서 이미지를 어떻게 생성합니까? (0) | 2021.02.10 |
파이썬 Gunicorn 구성 파일은 어디에 있습니까? (0) | 2021.02.09 |
댓글