Либо проштудировать раздел реестра
Код:
HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm
либо
перебором попыток открыть соответствующий порт напямую и анализом результата
Код:
CreateFile(AnsiString("\\\\.\\COM"+IntToStr(i)).c_str(),
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
Первый вариант быстр, а второй позволяет определить свободени ли в данный момент порт.