Datentransfer zwischen individuellen Programmen
-
Hallo,
ich suche nach einer Möglichkeit von einem Programm verschiedene Daten (nicht
viel, nur ein paar double) mit einer einstellbaren Zeitverzögerung an ein anderes
Programm weiterzugeben.
Ist das einigermaßen einfach zu machen?
Benutze VC++ 2005grüße
Huddi
-
WM_COPYDATA wäre eine Möglichkeit.
-
-
Named Pipes, DDE, COM, WM_COPYDATA (wurde schon genannt).
Eben alles was IPC zu bieten hat.
-
Okay, danke!
hatte hier nen Beispiel rumliegen, das mit nem TCP mirror gearbeitet hat.
Sieht eher aufwändig aus.
-
Was soll ein "TCP mirror" sein?
-
keine Ahnung, so heißt das Programm. Arbeitet wohl mit sockets
-
Mit WM_COPYDATA kann ich jetzt zwischen zwei einfachen Programmen kommunizieren.
Dabei muss das Senderprogramm allerdings vor jedem Senden FindWindow aufrufen
oder? Kann das schlecht sein, wenn viele male pro Sekunde gesendet wird?Ich habe jetzt auch versucht Daten an ein komplexeres Programm zu schicken. Ich
müsste ja eigentlich nur in der Methode, die die Messages
verarbeitet meinen WM_COPYDATA case eintragen oder?Jetzt habe ich zwei Probleme, bei denen ich nicht weiß ob die der Auslöser sind,
dass es nicht klappt.1. die FindWindow funktion: das andere Programm erstellt sich eine eigene
WNDCLASS mit dem Namen _T("D3D Window")
Bei find Window muss ich aber einen LPCWSTR eingeben und er erkennt das _T nicht.
Ich hab also L"D3D Window" eingegeben. Müsste das gehen?2. das Programm, an das gesendet wird ist im Fullscreenmodus. Ich habe
das so gelöst, dass ich zuerst den Sender starte und der praktisch ein paar mal
ins leere sendet bevor erst die fehlermeldung kommen kann.
In der Zeit starte ich das Fullscreenprogramm. Er kann die Daten jedoch
trotzdem nicht senden. Kann das so überhaupt funktionieren?
-
Klingt alles sehr mysteriös, du willst doch net etwa mit WM_COPYDATA Daten an ne DirectX (3D) Anwendung schicken, und wenn ja für welchen Zweck, denn ich bezweifle dass das programm auf die Sachen überhaupt "hört".
-
also: Zweck ist es ein Head-Up-Display über ein Stereokamerabild zu legen.
Das Stereobild wird von einem opensource StereoVisualisationKit verarbeitet.
Das ist dafür gedacht eigene Projekte zu erstellen.
Und ja es ist DirectX, aber warum macht das einen Unterschied?Es wäre schön wenn die Daten, die dafür gebraucht werden (paar Winkel, Position und Geschwindigkeit) von einem externen Programm kommen könnten, da dieses schon
vorhanden ist (eine Kameraarmsteuerung).
-
Es funktioniert! Also überhaupt kein Problem mit Direct X. Der Name vom Fenster war nur verkehrt.
Aber nochmal die Frage: benutzt FindWindow viel cpu?