Zitat von
DelphiManiac:
Das ist ja auch super, nur wenn ich mir jetzt die Comports in eine Auswahl a la Combobox oder Listbox lade habe ich folgendes Prob.
Es werden anscheinend alle Comports (die das System in der Registry hat) angezeigt, auch die die vielleicht schon durch ein anderes Programm in Benutztung sind (sehr unschön). Denn was bringt mir COM1 wenn sie belegt ist.
Ich wollte euch fragen, wie die Ports am Besten rausfiltern kann.
Bzw. ob ich eine andere Methode dafür nutzte.
Hi,
also an sich möchte ich hier (wieder?) die TComPort-Komponente pushen und sagen, dass das ja eigentlich genau das ist, was ich auch erwarten würde. Die listet alle vorhandenen Ports auf.
Natürlich kannst Du schauen ob ein Port schon belegt ist (versuche den einfach zu öffnen, während jmd. anderes das getan hat), aber das schützt Dich auch nur bedingt. Hängt an COM1 ein Gerät das angeschaltet ist, aber dessen Software noch nicht gestartet wurde, so hast Du auch das Problem, dass COM1 als "frei" erkannt werden würde. Wie gesagt, das einfache Filtern kannst Du ohne Probleme durchführen indem Du einfach jeden Port den Du findest öffnest. Klappt das ohne Probleme ist der nicht in Verwendung.
Hast Du ein Identifikations-Kommando zur Verfügung, so kannst Du natürlich so auch gleich automatisch alle Geräte ermitteln, die Du anbieten möchtest. Der Weg dürfte dann auch klar sein, Du versuchst einfach alle Ports zu öffnen und sendest auf jedem dieses Kommando, kommt eine (erwartete) Antwort, wird das richtige dranhängen. Der Weg ist allerdings riskanter, da Du natürlich nicht weißt was dein Kommando bei fremden Geräten auslöst. Zudem kommt dann das Problem der Unterscheidung zweier Baugleicher Geräte hinzu.
Gruß Der Unwissende