![]() |
Re: COM ports im Griff bekommen
Deppen haben ueblicherweise immer was zum Reinstecken. :-)
|
Re: COM ports im Griff bekommen
angesichts der Ergebnislage gehört dieser thread sowieso in Klatsch und Trasch verschoben...
|
Re: COM ports im Griff bekommen
Wie waer es mal nach den SysInternal Tools zu suchen wie vorgeschlagen?
|
Re: COM ports im Griff bekommen
Hallo Robert,
Sysinternals bringt uns keinen Schritt weiter. Wie willst du die Tools in deinem eigenen prog verwenden? Wir haben uns da schwindlig gesucht und nichts gefunden. Ich meine ich habe irgendwo ein Stück Code mit dem man ( ohne try and error ) feststellen kann ob die com offen ist oder nicht. Ich suche danach. Wenn ich fündig werde stell ich das hier ein. Grüsse Rainer |
Re: COM ports im Griff bekommen
Zitat:
Delphi-Quellcode:
{
Result: Wenn benutzt wird dann True, sonst False. } function IsComOpen(wPort: Word): Boolean; var hCom: THandle; const lpszPort = '\\.\COM%d\'; begin Result := True; hCom := CreateFile(PChar(Format(lpszPort, [wPort])), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if (hCom <> INVALID_HANDLE_VALUE) then begin Result := not CloseHandle(hCom); end; end; procedure TForm1.FormCreate(Sender: TObject); begin if IsComOpen(1) then ShowMessage('Wird benutzt') else ShowMessage('Geht scho!'); end; |
Re: COM ports im Griff bekommen
Hallo,
das ist genau die Methode, die ich mit "try and error" beschrieben habe. Ich mache den Port auf und wieder zu, wenns schief geht hab ich halt Pech gehabt. Das ist so keine akzeptable Lösung. Ich will ohne Öffnungsversuch festellen was mit der Schnittstelle los ist. Was macht ich wenn sie besetzt ist booten? Grüsse Rainer |
Re: COM ports im Griff bekommen
Das ist genau die Stelle an der dein Programm sich bescheiden muss. Wenn die Schnittstelle in Benutzung ist, dann ist sie eben in Benutzung. Du beschreibst das softwaretechnische Aequivalent von Arroganz.
|
Re: COM ports im Griff bekommen
Hallo Robert,
das sehe ich nicht so. Was ist denn illegal (oder arrogant) daran wenn man nach einer etwas eleganteren Methode, zum feststellen ob der Port belegt ist oder nicht, sucht. Ich weiss dass das geht ( habs schon gemacht kanns aber im Moment nicht finden ) Zum Hintergrund: Wir stellen professionelle Tools zur Zählerauslesung oder zur Parametrierung anderer Geräte her. Da die Kommunikation noch sehr oft direkt über RS232 oder über virtuelle Com Ports läuft ist dieses Problem für uns existentiell wichtig. Wer auch immer einen Com Port blockiert, es hilft nur noch ein völliges Ausschalten des Systems. Ich finde es überhaupt nicht arrogant festzustellen wer die Schnittstelle im Griff und diese Verbindung, natürlich auf Nachfrage, zu killen. Grüsse Rainer |
Re: COM ports im Griff bekommen
Es genuegt dann aber festzustellen welches Programm die Schnittstelle belegt und dieses per Hand zu beenden oder zu deinstallieren.
Das Problem auf die harte Art zu loesen, indem man das andere Programm killt (oder zumindest die Verbindung) ist eben "Arroganz". Das eigene Programm ist wichtiger als das andere. Es liegt natuerlich ein Fehler vor wenn ein Programm einen COM Port blockiert, obwohl nicht das Geraet dranhaengt mit dem man reden will. |
Re: COM ports im Griff bekommen
Zitat:
Zitat:
Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 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