![]() |
Check ob Ports durch andere Anwendungen besetzt sind ?
hi,
also folgendes Problem. Ich hole mir alle Ports die mir auf der Workstation zur Verfügung stehen aus der registry und schreib sie in eine stringlist. Soweit so gut. Ich verwende die ComPort264. Anwendung: Automatische Device Erkennung! Also ich schicke meinem Gerät ein Zeichen! --> diese verarbeitet es und schickt mir danach seine Kennung....-> Folge von Zeichen! Ich muss jetzt also alle Ports nach der Reihe durch gehen und schaun ob ich diese Kennung zurückbekomme und dann eben ausgeben wo das gerät dran hängt. Das Problem hierbei ist, dass ich einen Fehler bekomme wenn ich versuche einen Port zu öffnen wenn dieser schon von einem anderen Programm in beschlag genommen wurde. Dh. Abfolge:
doch wie kann überprüfen ob eine andere Anwendung einen port, und wenn welchen benutzt? In de Komponente gibt es die prozedur ComPort1.Connected doch durch herum testen bin ich zum schluss gekommen, dass diese nur checked ob ein Port durch die Komponente geöffnet wurde nicht aber ob sie durch ein anderes Programm geöffnet ist. Ich hoff jemand hat dazu eine produktive Idee? mfg Flo danke schon im Voraus :coder: |
Hat den wirklich niemand eine Idee, oder hab ich mich so schlecht ausgedrückt ?
Zumindest ein kleiner Ansatz wäre echt cool. Danke für eure Hilfe! mfg Flo :nerd: |
Wenn du schon eine Fehlermeldung bekommst, wenn der Port von einer anderen Anwendung in Beschlag genommen ist, dann fange die Fehlermeldung doch einfach mit try/except ab und setze im Except-Teil eine Variable auf False.
Delphi-Quellcode:
function PortFrei(const Port: string);
begin Result := True; try Com1.OpenPort(Port); // <-- frei erfunden da ich die Komponente nicht kenne Com1.ClosePort; except Result := False; end; end; |
Hehe jojo, des mach ich doch eh schon.
Aber er zeigt mir trotzdem eine Fehlermeldung an, dass ist ja das was mich so verwirrt, eigentlich sollte keine Meldung kommen. Aber es wird trotzdem eine angezeigt. Aber danke für die Tipp :-) Weiter Möglichkeiten , oder hat jemand eine Erklärung dafür? mfg FLo :cry: |
Zitat:
|
Du meinst einfach mal die Exe starten oder wie?
naja des geht auch nicht --> selber Fehler! aber danke trotzdem ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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