Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Shellexecute Ergebnis im Memo Objekt ausgeben

  Alt 21. Mär 2022, 12:04
Hallo und Herzlich Willkommen

Das ist wirklich viel schwieriger als es klingt.
Wir müssen erst einmal klären was du genau willst. Mit "Ergebnis" meinst du wahrscheinlich nicht den "Rückgabecodes" eines Prozesses, sondern das, was das Programm in die Windows-Konsole schreibt, würde man es doppelklicken oder per Konsole aufrufen. Richtig?

Wenn ja, dann ist ShellExecute(..) bereits das falsche Werkzeug für die Mission. Es ist praktisch dazu gedacht, ein "Benutzer vor dem PC doppelklickt Element XY" zu simulieren. Es bietet keine Möglichkeiten, die "Standardausgabe stdOut" des Programms (welches du starten willst) so "abzufangen", dass du es z.B. in einer Memo anzeigen könntest.

Die richtigen Tools hierfür wären in der Regel das etwas unhandliche CreateProcess(..) und ein vorheriges Erstellen einer "Pipe", um die Standard-Ausgabe deines Konsolenprozesses "aufzufangen".

Im Internet gibt es viele fertige Lösungen, wenn du z.B. "delphi capture console output" in die Suchmaschine deines Vertrauens eingibst. Wenn man den Anspruch hat das wirklich zu verstehen ist schon einiges an Arbeit nötig, vor allem wenn man sich mit Dingen wie Pipes oder stdIn/stdOut noch nicht beschäftigt hat.
  Mit Zitat antworten Zitat