Aus den ersten Suchergebnissen...
https://www.delphipraxis.net/117567-...ung-nicht.html
Zeigt zumindestens schonmal ansatzweise, wie das aussieht
* Pipes erstellen
* * mindestens hStdInput, wo du deine Befehle rein schreiben kannst
* * und eventuell auch noch hStdOutput, wo die Antwort zurück kommt
* dann damit den Prozess starten
* auf dessen Ende warten
* und währenddessen die Ein-/Ausgaben behandeln, also in StdIn reinschreiben und aus StdOut lesen (ja, andersrum, da aus Sicht des gestarteten Programms)
hi himitsu,
danke, das hat schon richtig geholfen.
Kann jetzt meine KonsolenApp starten.
Habe dann im Code von little_budda an der Stelle
//jetzt mit ReadFile/WriteFile kommunizieren
folgendes eingeführt:
Delphi-Quellcode:
var
chBuf : Array[1..2] of Char;
written : longWord;
begin
.........
//jetzt mit ReadFile/WriteFile kommunizieren
while true do
begin
chbuf[1]:= '3';
chbuf[2]:= #13;
bSuccess:= WriteFile(WriteInput{g_hChildStd_IN_Wr}, chBuf, 2{dwRead}, Written{&dwWritten}, nil);
if (NOT bSuccess) then
begin
err:= GetLastError;
break;
end;
end;
Und jetzt was zum Verständnis.
Wenn ich in der STARTUPINFO Struktur einen "Input-
Handle" für die KonsolenApp erzeuge
CreatePipe(StartStruct.hStdInput, WriteInput, @SecAttr, 0); //die Handles erzeugen
sollte ich mit WriteFile doch direkt da reinschreiben könen? Oder nicht?
Oder muss ich in der KonsolenApp auch noch explizit aus dem neuen
Handle lesen?
Ich dachte eigentlich, das beim Starten der KonsolenApp deren StdInput schon umgebogen wird?????
Ihr seht, mir fehlt da ganz Grundsätzliches
Danke für weitere Hilfe
Charly