Einzelnen Beitrag anzeigen

peter001

Registriert seit: 2. Nov 2008
17 Beiträge
 
#1

Delphi - Konsolencommand ausführen und ergebnis abfangen

  Alt 11. Aug 2009, 19:09
Hallo!

Ich habe schon viel gesucht und einiges gefunden.
Und zwar möchte ich, dass ich mit meinem Delphiprogramm eine Anwendung starte und deren Output auslese, damit ich diesen in meiner Anwendung als String verarbeiten kann.
Man kann sich das so vorstellen, dass ich ein GUI für eine console-only-application bauen möchte.

Fündig bin ich bereits hier geworden: http://www.delphipraxis.net/internal...ct.php?t=58475
Ich kann auf Knopfdruck Daten an die Konsole senden.

Nur leider habe ich es nicht hinbekommen, dass dieses command auch ausgeführt wird. Die Konsole zeigt mir genau das, was ich ihr sende, passieren tut aber nichts.

Gibt es eine Möglichkeit, das ohne größere aufwände (extra frameworks, addons, etc) hinzukriegen?

Mein bisheriger Codeschnipsel:

Delphi-Quellcode:
procedure TForm1.compileClick(Sender: TObject);
var
  hIn: THandle;
  hOut: THandle;
  c: char;
  iRead, iWritten: cardinal;
  s: string;
begin
  opusage.Caption := 'Das Fenster wird nun für die Konsolenausgabe benutzt';
  clearlog.Enabled := true;
  resetqcfile.Enabled := false;
  toclipboard.Enabled := true;

  AllocConsole;

  hIn := GetStdHandle(STD_INPUT_HANDLE);
  hOut := GetStdHandle(STD_OUTPUT_HANDLE);

  FlushFileBuffers(hIn);

  s := 'H:\Programme\ConTEXT\ConTEXT.exe';
  WriteFile(hOut, s[1], Length(s), iWritten, nil);

  repeat
    ReadFile(hIn, c, 1, iRead, nil);
    if c = #13
      then Break
      else s := s + c;
  until false;


  FreeConsole;
end;
Ich bin wie immer Dankbar für jede Hilfe
  Mit Zitat antworten Zitat