![]() |
Zur Verfügung stehende serielle Ports ermitteln !
Lol , Fragen über Fragen.
Hi, heute zum 2ten mal. Nun es geht darum zu ermitteln welche serielle Ports der PC hat. Hierbei sind eben nicht nur home pcs gemeint die meist nur bis max. COM3 gehen sondern auch industrie - pcs wo man gern coms im oberen Bereich verwendet. -> Com 8 - 15! ALso nun die Frage! Ich benutzt diese ComPort264 Komponente! Allerdings möchte ich so eine Art Autoerkennung für meinen Analyser realisieren. Im Prinzip kein Problem nur,............ Ich will unterscheiden können zwischen Port nicht vorhanden und port wird gerade von einer anderen anwendung in beschlag genommen. so weit ich mich da vorgearbeitet hab geht des in richtung errormessage handling, stimmt das oder ist dies der falsche weg ? Ich hab mir des so vorgestellt: 1. Programm wird gestartet 2. Schleife welche Ports von 1 - 15 nacheinander zu öffnen versucht 2.1. In der schleife (wenn port offen) -> zeichen an Anal. schicken dieser antwortet mit seiner ErkennungsID 2.2. Wenn erkennungs ID erkannt merk ich mir die Com 2.3. Wenn ich allerdings mit try....except feststelle dass ich die Com nicht aufmachen kann, will ich eben noch unterscheiden ob die com besetzt ist oder ob es sie gar nicht gibt. und genau das ist das Problem. Alles andere funkt! Ich hoffe ihr habt vorschläge, anregungen für mich :-) danke schon im voraus ! :coder: |
Hallo Florian,
ein Blick in die Library, hätte Dir ![]() Du musst es nur noch um einen Filter erweitern, den so werden auch Virtuelle Modems eingetragen. Das heisst, alle Namen die nicht COM1 bis COM 15 heissen, einfach aus der ComboBox wieder rauslöschen. Schon geht es. Grüsse, Daniel :hi: |
Für Com-Port Programmierung benutz ich nur noch die TurboPower Async Professional Komponenten die vor ein paar Wochen als OPen-Source veröffentlicht worden.
Miener Meinung nach der komfortabelste Weg auf den Com-Port zuzugreifen. ![]() |
hmpf lol
nun gesucht hab ich, per suche aber den threat hat er mir nicht angezeigt :-( vielen dank auf alle fälle , des ist genau das was ich suche thx daniel |
Moment mal, gut gut
aber wie mach ich jetzt den check ob sie von einer anderen Anwendung benutzt wird ? einfach mit try...except und wenns nicht geht wird sie von nem anderen programm benutzt ? so in die richtung? |
Zitat:
Aber, Du kannst damit ganz einfach prüfen ob ein ComPort offen ist. Und zwar: Mach eine Schleife,
Delphi-Quellcode:
Du musst einfach nur den Port setzen, schauen ob der schon offen ist und wenn nein dann öffnen, ansonsten den nächsten anschauen.
for i := 0 to ComboBox.Items.Count -1 do
begin ComPort1.Port := ComboBox.Item[i]; if ComPort1.Connected then //Setze nächsten Port zum überprüfen else ComPort.Open; end; end; Grüsse, Daniel :hi: |
ah versteh schon :-)
thx nur text is falsch, ich mach ihn auf wenn er NICHT offen ist ;-) |
Zitat:
Delphi-Quellcode:
Wenn der Port Connected ist, dann setze den nächsten zum überprfüen, wenn nicht, dann öffne ihn.
ComPort1.Port := ComboBox.Item[i];
if ComPort1.Connected then //Setze nächsten Port zum überprüfen else ComPort.Open; end; Grüsse, Daniel :hi: |
Zitat:
:-) |
Sollte natürlich Nein heissen. ;)
Grüsse, Daniel :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz