Enum Serial Port

Enum Serial Port


Serial Port 的注册表资讯是放在

       HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM

image

手边有一个 USB 转 RS232 的传输线,插入或移除时可观察到注册表的变化。

How to enum serial port ?

int EnumComPort(vector *pvec)
{
	HKEY  hKey;
	LONG  lReturn;
	DWORD dwValue = 0, dwType, dwData;
	DWORD dwValName;
	TCHAR szValueName[256];
	TCHAR szData[1024];
	BOOL  bIsPath;
	 
	if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
		"HARDWARE\DEVICEMAP\SERIALCOMM",
		0, KEY_READ, &hKey) != ERROR_SUCCESS)  
	{	 
		RegCloseKey(hKey);
		return 0;
	} else
		bIsPath = TRUE;
	 
	while(bIsPath == TRUE) 
	{	 
		dwData = sizeof(szData);
		dwValName = sizeof(szValueName);
		 
		lReturn = RegEnumValue(hKey, dwValue++, szValueName, &dwValName,
									NULL, &dwType, (UCHAR*)szData, &dwData);

		if(lReturn == ERROR_NO_MORE_ITEMS)
			break;
	 
		pvec->push_back(szData);
	}
	 
	RegCloseKey(hKey);
	 
	return pvec->size();
}


其它方法参考

  • EnumSerialPorts v1.12 A set of functions to enumerate serial ports
  • CodeProject - EnumSerialPorts v1.02 - Enumerating Serial Ports


Dotblogs 的标签: WinAPI

原文:大专栏  Enum Serial Port


猜你喜欢

转载自www.cnblogs.com/petewell/p/11452516.html