시리얼 포트를 스캔하실려면 레지스트리의
HKEY_LOCALMACHINE\HARDWARE\DEVICEMAP\SERIALCOMM 항목을 찾아보면 됨.
int GetSerialPort(CStringList& list)
{
HKEY hSerialCom;
TCHAR buffer[_MAX_PATH], data[_MAX_PATH];
DWORD len, type, dataSize;
long i;
if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
_T("HARDWARE\\DEVICEMAP\\SERIALCOMM"),
0,
KEY_ALL_ACCESS,
&hSerialCom) == ERROR_SUCCESS)
{
for (i=0, len=dataSize=_MAX_PATH;
::RegEnumValue(hSerialCom,
i,
buffer,
&len,
NULL,
&type,
(unsigned char*)data,
&dataSize)==ERROR_SUCCESS; i++, len=dataSize=_MAX_PATH)
{
data[dataSize-1] = NULL;
if (strncmp(data, "COM", 3) == 0)
list.AddTail(data);
}
::RegCloseKey(hSerialCom);
}
return list.GetCount();
}
출처 : http://littletrue.egloos.com/4294013
'MFC' 카테고리의 다른 글
시간 연산 방법 (0) | 2011.08.26 |
---|---|
레지스트리 관련 api함수들 (0) | 2011.08.26 |
CImage 에서 Gdiplus::Image로 컨버팅하기 (0) | 2011.08.26 |
릴리즈 모드로 디버깅 하기 (0) | 2011.08.26 |
더블 버퍼링 (0) | 2011.08.26 |