Windows und die Streams

26.07.2009 Yahe

Manchmal kann Windows selbst mich noch mit mir unbekannten Funktionen beeindrucken. Dieses Mal habe ich mich ein wenig mit den Standard-Streams von Windows beschäftigt.

Das Problem war, dass der Text, den ein Programm A in die Standardausgabe schreibt, einem anderen Programm B als Eingabe dienen sollte. Leider Gottes kann Programm B die Daten nur über eine serielle Schnittstelle einlesen.

Die Idee war nun, die Ausgabe von Programm A direkt in einen COM-Port umzuleiten und dann Programm B auf die andere Seite dieses Ports zu setzen, damit es die Daten direkt erhält. Ob man es glaubt oder nicht: Es hat funktioniert!

Mit Hilfe des Virtual Serial Ports Emulator von Eterlogic konnte ich ein sogenanntes "Pair-Device" erstellen. Dieses besteht aus zwei virtuellen COM-Ports, die direkt miteinander verbunden sind. Alles, was in den einen Port A geschrieben wird, kann man über den anderen Port B auslesen. Das ganze funktioniert natürlich auch andersherum.

Angenommen, man hat die beiden Ports COM20 und COM21 angelegt, so kann man nun die Ausgabe von Programm A mit diesem zusätzlichen Parameter in den einen COM-Port (sprich COM20) - umleiten:

"Programm A.exe" > \\.\COM20

Anschließend kann man Programm B so konfigurieren, dass es seine Daten aus dem anderen COM-Port (also COM21) erhält.

Wieder mal habe ich gemerkt: Man lernt doch nie aus!

Cheers, Yahe


Search

[2018-08-16T07:52:16+02:00] _logResourceUsage(): Current execution time: 0.018017053604126 sec [2018-08-16T07:52:16+02:00] _logResourceUsage(): Current memory usage: 1.6876678466797 MB [2018-08-16T07:52:16+02:00] _logResourceUsage(): Peak memory usage: 1.8751831054688 MB