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
Hab ich schon versucht (FILE_SHARE_READ | FILE_SHARE_WRITE), hat aber leider nichts gebracht.
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!
Hallo, versuchs mal unter www.sysinternals.com. Dort findest du das Tool PortMon, welches Serielle Ports sniffen kann. Gruss, Peter
Leider schreiben die nirgendwo, wie sie das machen. Denn diese Info würde mich bei fast allen Programmen von denen interessieren...
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.
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
@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 ;)
> 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.
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 ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.