Selbstgeschriebene Exe aufrufen und Parameter mitgeben sowie Daten zurückerhalten
-
Hallo Zusammen,
vielleicht kann mir Jemand helfen. Ich möchte eine Exe aufrufen, ihr Parameter mitgeben und meine ermittelten Daten zurückerhalten. Das ganze zum Beispiel by Reference oder auch by Value, das ist mir eigentlich egal. Jetzt habe ich mir die Befehle ShellExecute und CreateProcess mal angeschaut, kann aber dort nicht erkennen, dass das, was ich erreichen möchte damit möglich sein soll. Man kann zwar Parameter übergeben, wie aber erhält man die Daten zurück?
Hat Jemand von Euch vielleicht ein Beispiel, wie ich hier zum Ziel kommen kann??
Das wäre total supi
Viele Grüsse
Oliver
-
Was für Daten willst du denn zurück haben, ich denke hier liegt ein grundliegendes Misverständnis vor. Wenn du das Ergebnis von deinem Programm an ein anderes übermitteln willst, so gibt es verschiedene möglichkeiten wie pipes oder interprozeß kommunikation, mein freund.
-
Hallo mein Freund,
zunächst einmal Danke für Deine Antwort. Ja, welche Daten will ich zurückhaben? Also im Prinzip könnte ich mir vorstellen, dass das gerufene Programm dem rufenden einen String zurückliefert. Vielleicht auch einen Pointer, dieser Pointer könnte auf einen Struct weisen, der dem rufenden und dem gerufenen Programm bekannt ist.
Kann ich so etwas mit Pipes machen? Und wenn ja, wie geht das? Hast Du dafür vielleicht Beispielcode?
Gruss
Oliver
-
http://msdn.microsoft.com/library/en-us/ipc/base/interprocess_communications.asp
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/dataexchange.asp
-
Hallo mein Freund,
oho wie gesagt dafür brauchst du am besten Kommunikation die über die Schranken des Prozesses hinausreicht. Es geht leider nicht daß du einfach einen Pointer an ein anderes Programm weiterreichst, denn dort wird dieser Pointer ungültig sein. Du kannst deine Struct allerdings mit den virtuellen Speicher Funktionen (VirtualAllocEx, WriteProcessMemory) in den Speicher eines anderen Programms befördern und dem Programm dann einen Hinweis auf diese Struct in Form eines Zeigers geben. Schaue dich am besten einfach mal auf der MSDN Seite dazu um, welche Flenders verlinkt hat und wenn es weitere Fragen gibt, meldest du dich wieder.