Forum: PC-Programmierung Com mehrfach öffnen


von Peter H. (Gast)


Lesenswert?

hallo!

Ich möchte über Visual C einen Comport öffnen - allerdings so,
dass auch ein anderes Programm diesen Port noch verwenden kann.

Grund:

Ich möchte beim Programmieren einer Steuerung mitlauschen, um
diese fernwartbar zu machen.

Momentan programmiere ich über eine Software, die dann das
Programm direkt in die Steuerung schreibt.

Ich möchte meinen Benutzern nun ein Programm zur verfügung stellen,
dass es ermöglicht auf einfachen Weg das Programm upzudaten.

Ich habe bereits nach "sniffer" gesucht - allerdings nichts ideales
gefunden (inkl. Source)

Schöne Grüße

Peter

von Tobi (Gast)


Lesenswert?

versuchs mal mit dem dwShareMode flag von createfile

von Peter H. (Gast)


Lesenswert?

Hab ich schon versucht (FILE_SHARE_READ | FILE_SHARE_WRITE), hat aber
leider nichts gebracht.

von Tobi (Gast)


Lesenswert?

Alle anderen Möglichkeiten, die ich sonst noch gefunden habe benutzen
virtuelle Ports. Falls du doch noch eine andere Möglichkeit findest,
bitte hier posten, ich wäre daran auch sehr interessiert!

von Peter Mahler (Gast)


Lesenswert?

Hallo,

versuchs mal unter www.sysinternals.com. Dort findest du das Tool
PortMon, welches Serielle Ports sniffen kann.

Gruss,

Peter

von Tobi (Gast)


Lesenswert?

Leider schreiben die nirgendwo, wie sie das machen. Denn diese Info
würde mich bei fast allen Programmen von denen interessieren...

von remstal (Gast)


Lesenswert?

Schon bei Herrn Russinovich angefragt? Zwar vermute ich, dass die einen
Grund haben, warum sie den Code von manchen Projekten veroeffentlichen
und von anderen nicht, aber vllt. koennen Sie Euch ja trotzdem den
einen oder anderen Tip geben.

von T.Stütz (Gast)


Lesenswert?

Soweit ich das mal herausgepfrimelt hab, wird beim Programmstart eine
SYS-Datei (Kerneltreiber) kurzzeitig entpackt und in das System
eingebunden nach Programmende wird selbige wird gelöscht. Vermutlich
als sogenannter "Filter" Treiber zwischen VCOMM.SYS und
serial.sys/paralell.sys (weshalb auch das aufzeichnen auf der
paralellen dann möglich ist).

@Tobi
Wenn du uns noch sagst was für eine Ziel-SPS und Betriebssystem
dann kann dir vielleicht geholfen werden.

Gruss

von Tobi (Gast)


Lesenswert?

@t.stütz
du meinst ganz sicher peter

auf der sysinternals site steht übiergens unter how it works einiges
interessantes:
http://www.sysinternals.com/ntw2k/freeware/portmon.shtml

für win9x hast du recht mit dem extra treiber, bei nt und nachfolgern
gehts allerdings irgendwie anders (wie versuch ich noch
nachzuvollziehen ;)

von René König (Gast)


Lesenswert?

> bei nt und nachfolgern gehts allerdings irgendwie anders

Da geht das auch mit einem Treiber. Du hast den PortMon doch direkt
verlinkt. Und da steht doch klar geschrieben, daß der Treiber mittels
IoAttachDeviceByPointer an den Stack angefügt wird.

von Tobi (Gast)


Lesenswert?

Deswegen hab ich auch geschierben, dass ich das noch nicht ganz
verstanden habe, da mit die dort angegebenen Funktionen vollkommen
unbekannt waren. zu ioattachdevicebypointer liefert noch nicht mals die
msdn suche ein ergebnis. Scheint auf jeden fall einiges an aufwand zu
sein, einen seriellen port mitzulauschen, egal unter welcher win
version

Ich habe immerhin endlich die stelle in der reg gefunden, an der alle
installierten seriellen schnittstellen stehen. Damit hat sich das
mitlesen hier schonmal gelohnt ;)

von René König (Gast)


Lesenswert?

Das mit der MSDN-Suche kann sein, da die Funktion eigentlich obsolete
ist (der PortMon ist halt schon etwas älter). Eine Suche nach
IoAttachDeviceToDeviceStack sollte ergiebiger sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.