Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Welche Anwendung belegt welchen Com Port

393 views
Skip to first unread message

Thomas Weber

unread,
Jan 21, 2004, 8:30:31 AM1/21/04
to
Wir vertreiben ein Device, das über Serielle Schnittstellen
angeschlossen wird. Manchmal bekommen die Nutzer Meldungen
wie "Zugriff verweigert", wenn das Port von anderen
Anwendungen belegt ist. Schön wäre es herauszufinden,
welche Anwendung das Com Port belegt.

Frage: Kennt jemand einen Weg dies herauszufinden?

Thomas Weber
Produktmarketing

Phil Wolf

unread,
Jan 21, 2004, 9:08:34 AM1/21/04
to

"Thomas Weber" <p...@simons-voss.de> schrieb im Newsbeitrag
news:OS4E3LC4...@tk2msftngp13.phx.gbl...

> Wir vertreiben ein Device, das über Serielle Schnittstellen
> angeschlossen wird. Manchmal bekommen die Nutzer Meldungen
> wie "Zugriff verweigert", wenn das Port von anderen
> Anwendungen belegt ist. Schön wäre es herauszufinden,
> welche Anwendung das Com Port belegt.
>

mit der seriellen schnittstelle lässt sich nur eine p2p verbindung
erstellen.
wenn also euer gerät z.B. an com1 angeschlossen ist, kann dieser port
wohl kaum von anderen geräten belegt werden. wenn euer kunde eine
software lädt, welche z.b. die interrupt-vektoren ändert, ist er selber
schuld und ihr könnt kaum was dagegen tun. ich glaube aber kaum,
dass sowas passiert.
was ich eher für möglich halte ist, dass der kunde die software unter winnt
oder 2000 laufen lässt und die software direkt auf den port zugreift, was
das betriebssystem nicht zulässt. daher die fehlermeldung "zugriff
verweigert."

eine weitere möglichkeit wäre, dass euer programm einen "fehler?" hat und
den port in eine art initialisierungszustand versetzt, in dem die sende-
und empfangsregister gesperrt werden. z.B. line control register bit 7
auf "1".

mir ist keine andere möglichkeit bekannt, wie ein com port gesperrt werden
könnte.

gruss phil


Karl-Heinz Pfueller

unread,
Jan 21, 2004, 9:27:36 AM1/21/04
to
"Thomas Weber" <p...@simons-voss.de>
...

...

Eine fertige Loesung zur Verwendung in einem Programm habe ich nicht parat,
aber unter

http://www.sysinternals.com/ntw2k/freeware/portmon.shtml

gibt es einen Port-Monitor, in dem man sieht welche Anwendungen auf die
seriellen Schnittstellen zu greifen. Da es Freeware ist, kann es sicher auch
fuer die schenlle Hilfe beim Kunden eingesetzt werden.

Programmieransaetze sind dort auch beschrieben. In der gleichen Art wuerde
ich eine entsprechende Komponente schreiben, die programminteren
funktioniert ...


Kalle

--
Entwicklung, Beratung und Schulung - Softwarekomponenten, C++ und XML
Software Service KHP

Do not reply! There is the garbage collection :-(
No Spam Contact: http://home.t-online.de/home/kalle.sws_khp/


Thomas Weber

unread,
Jan 21, 2004, 9:28:32 AM1/21/04
to
"Phil Wolf" <phil...@freesurf.ch> schrieb im Newsbeitrag
news:Ox5QJhC4...@tk2msftngp13.phx.gbl...

Bei WinNT und Win2000 erfolgt der Zugriff auf ein COM Port mit der API
Funktion CreateFile(.....) oder über die Klasse FileStream........ Beides
führt zu einem INVALID_HANDLE_VALUE und die Auswerung des Error Codes zeigt
"Zugriff verweigert". Was nichts anders bedeutet, als daß das Port von einer
anderen Anwendung göffnet wurde und "belegt" ist.

Ich suche nun einen Weg dem Kunden anzuzeigen, welche Anwendung das Port
belegt, denn auf heutigen Rechnern laufen so allerlei Anwendungen und es ist
nicht unbedingt ein toller Weg, mal auf Verdacht alle zu schließen, bis
endlich das Port mal frei ist.

Gruß
Tom

Thomas Weber

unread,
Jan 21, 2004, 9:52:06 AM1/21/04
to
"Karl-Heinz Pfueller" <kalle....@t-online.de> schrieb im Newsbeitrag
news:bum2c2$jk89a$1...@ID-209484.news.uni-berlin.de...

Das Programm kenne ich. Wenn die Anwendung, welche das Port belegt, gerade
nichts sendet, und das vielleicht über Stunden, dann zeigt auch der Portmon
nichts an, und das Port ist trozdem belegt.

Gruß
Tom

Karl-Heinz Pfueller

unread,
Jan 21, 2004, 10:37:47 AM1/21/04
to
"Thomas Weber" <p...@simons-voss.de>
...

> Das Programm kenne ich. Wenn die Anwendung, welche das Port belegt, gerade
> nichts sendet, und das vielleicht über Stunden, dann zeigt auch der
Portmon
> nichts an, und das Port ist trozdem belegt.

Ok, es sollte ja auch nicht die Loesung sein, sondern nur der Hinweis, dass
es moeglich die Prozesse zu finden. Eine auf Deine Anforderungen
zugeschnittene Loesung muss natuerlich noch programmiert werden. Der zuvor
genannte Link zeigt einen Weg, der in der konkret Umsetzung sicher noch
einige Arbeit erfordert :-( .

Einverstanden - Portman mit Autostart starten, ein Logfile schreiben und bei
Problemen auswerten ist sicher keine endgueltige Loesung, die man vielen
Kunden zumuten kann ..., ausserdem hat Portmon manchmal auch Probleme!

Thomas Weber

unread,
Jan 21, 2004, 11:26:52 AM1/21/04
to

"Karl-Heinz Pfueller" <kalle....@t-online.de> schrieb im Newsbeitrag
news:bum6fl$j0bkg$1...@ID-209484.news.uni-berlin.de...
> "Thomas Weber" <p...@simons-voss.de>
> ...

>
> Einverstanden - Portman mit Autostart starten, ein Logfile schreiben und
bei
> Problemen auswerten ist sicher keine endgueltige Loesung, die man vielen
> Kunden zumuten kann ..., ausserdem hat Portmon manchmal auch Probleme!
>
> Kalle
> --

Ich bin schon so genervt von diesem Kunden, daß ich ihm genau das empfohlen
habe.
Und siehe da, er hat keine Administrator Rechte und der gute Portmon läuft
nicht. Jetzt muß er halt
mitschreiben welche Anwendung er startet und wann unser Device nicht mehr
geht.

Gruß Tom

Phil Wolf

unread,
Jan 21, 2004, 1:23:11 PM1/21/04
to
hier gibt es einen ziemlich guten serial monitor zum downloaden.

http://www.hhdsoftware.com/sermon.html

gruss phil

"Thomas Weber" <p...@simons-voss.de> schrieb im Newsbeitrag

news:OxmsRsC4...@TK2MSFTNGP12.phx.gbl...

Winfried Mevenkamp

unread,
Jan 21, 2004, 5:14:32 PM1/21/04
to
Holzhammer-Methode

schreibe einen kleinen Dienst, der die Schnittstelle beim Systemstart öffnen
lass dir von deinem Programm das port handle geben (wenn der Dienst läuft)
und arbeite damit
dann haben die anderen Programme keinen Zugriff mehr


Karl-Heinz Pfueller

unread,
Jan 22, 2004, 9:14:41 AM1/22/04
to
"Winfried Mevenkamp" <w.mev...@gmx.de>
...

Keine schlechte Idee, aber was machst Du falls ein anderer Programmierer
schon den Holzhammer vor Dir anwendet und der andere Dienst schon die
serielle Schnittstelle geoeffnet hat?

:-( Kalle

0 new messages