Cómo implementar el escaneo de puertos COM en VC
La idea es esta:
El puerto serie de la computadora se almacena en el registro, así que simplemente lea el registro.
La ubicación del registro: HKEY_LOCAL_MACHINE\\Hardware\\DeviceMap\\SerialComm
Todos los puertos serie de mi computadora (como se muestra a continuación)
Código de referencia (Entorno de desarrollo: vc9.0)
HKEY?hKey;?int?rtn; RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"Hardware\\DeviceMap\\SerialComm",NULL,KEY_READ,amp;hKey); //Abra el registro del puerto serie if(rtn==ERROR_SUCCESS) { int?i=0; char?portName[256], commName[256]; DWORD?dwLong, dwSize; > dwSize =sizeof(portName);
dwLong=dwSize;
rtn=RegEnumValue(hKey, i, (LPWSTR)portName, & dwLong, NULL, NULL, (PUCHAR)commName , amp; dwSize);
if(rtn==ERROR_NO_MORE_ITEMS)//Enumerar el puerto serie
{
break;
p>}
else
{
Combo_ChooseComPort.AddString((LPCTSTR)commName);
i;
p>
} } RegCloseKey(hKey);?}