Ich mache das, indem ich von COM1 bis COM20 versuche, alle Ports zu öffnen (try->Comport1.Open->except). Schlägt das fehl weil der Port nicht da ist, bekomme ich eine EComPort-
Exception, die ich abfange. Ist der Port vorhanden, versuche ich etwas Festgelegtes zu pollen oder eine sinnvolle Datenstruktur zu erkennen, falls das Gerät selbst die Werte feuert. Kommt da nix bei raus, wird der Port geschlossen und es geht mit dem nächsten weiter.
Hat sich eigentlich bewährt.
Grüße, Messie