Zwischen zwei Programmen kommunizieren?
-
Leider kenn ich mich mit beiden so gut, wie garnicht aus. Codebeispiel kennst du nicht zufällig?
Und ich dachte Sockets sind zur Netzwerkprogrammierung gedacht?
MfG Unwissender
-
Der Standard-Mechanismus unter Windows ist (bisher noch) COM.
-
tja eigentlich sind sockets für netzwerkprogrammierung gedacht.
Du kannst aber ein Netzt über den Localhost zu deinem 2. Programm machen.Tutorials:
http://www.codersource.net/codersource_win32prog.html
http://www.hal-pc.org/~johnnie2/winsock.html
-
Mir schwebte das sowas vor wie den Zugriff über das HauptFenster Handle. Damit hätte ich ja dann alles Funktionen im Griff.
Das müsste doch mit FindWindow gehen oder ?
Oder sollte man so eine Lösung nicht nehmen?
@Helper
Über COM - mist, wieder was, dass ich noch nicht probiert habe
MfG Unwissender
-
wenn du 2 fenster hast und keine pipes und co verwenden willst, könntest du auch über benutzerdefinierte nachrichten gehen...
-
Wenn du weder Pipes (würde ich nehmen) noch sockets nehmen willst dann willst du kein problem lösen sondern liebst es den unkonventionellen / uneleganten und schweren Weg zu mehnem. Solche leute gibts. Ich habe verständnis für.
Jedem was er will.
-
wie geht das mit pipes?
-
Man könnte auch WM_COPYDATA benutzen.
MSDN schrieb:
An application sends the WM_COPYDATA message to pass data to another application.
-
Wenn beide Programme von Dir sind und beide immer gemeinsam laufen sollen und keine Erweiterungen geplant sind, dann kannst Du auch PostThreadMessage verwenden.
BOOL PostThreadMessage( DWORD idThread, // thread identifier UINT Msg, // message WPARAM wParam, // first message parameter LPARAM lParam // second message parameter );Denn eigenen thread identifier hast Du ja nach dem Start des Hauptprogramms. Den des Nebenprogramms bekommst Du über die Struct PROCESS_INFORMATION (enthält den thread identifier) beim Aufruf des Nebenprogramms mit CreateProcess.
Alternativ kannst Du auch die Registry benutzen, um die Thread identifiers nach dem Aufruf zu speichen.@Tolga:
Wie elegant man was macht ist doch gleichgültig. Fehlerfrei und robust sollte es sein.Blackbird
-
Wie elegant man was macht ist doch gleichgültig. Fehlerfrei und robust sollte es sein.
unelegant ist meistens nicht robust.

-
unelegant ist meistens nicht robust.
Den Zusammenhang kann ich nicht erkennen.
Blackbird