Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
22.05.2012, 12:47:26
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  WinAPI Forum
| | |-+  CreateProcess - Ausgabe und Eingabe umleiten?
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: CreateProcess - Ausgabe und Eingabe umleiten?  (Gelesen 2471 mal)
ABader
Gast
« am: 07.04.2002, 13:35:52 »

Folgendes Problem:
Wie kann man ein KONSOLE-Programm starten, und die Ausgabe und Eingabe, sprich die STDHANDLES umbiegen, damit STDIN nicht die Tastatur, und STDOUT nicht der Bildschirm ist?
Zum Versuchen wollte ich die HANDLES mal auf ein File umbiegen, dass es Tastatureingaben aus c:in.txt nimmt, und Tastaturausgaben in c:out.txt schreibt.
Dazu folgender Code:

[font  size=2 face="Courier New"][font color="#000000"]procedure TForm1.Button1Click(Sender: TObject);
var 
  
StartUpInfo: TSTARTUPINFO;
  ProcessInfo: TProcessInformation;
  Result:      Boolean;
  stdin:       TFileStream;
  stdout:      TFileStream;
  stderror:    TFileStream;
begin
  
stdin    := TFileStream.Create('c:in.txt', fmOpenRead);
  stdout   := TFileStream.Create('c:out.txt', fmOpenWrite);
  stderror := TFileStream.Create('c:error.txt', fmOpenReadWrite);
  getstartupinfo(Startupinfo);
  Startupinfo.dwFlags := STARTF_USESTDHANDLES;

  Startupinfo.hStdInput  := stdin.Handle;
  Startupinfo.hStdOutput := stdout.Handle;
  Startupinfo.hStdError  := stderror.Handle;


  Result := CreateProcess(nil,
    'xcopy',
    nil,
    nil,
    True,
    NORMAL_PRIORITY_CLASS,
    nil,
    nil,
    StartUpInfo,
    ProcessInfo);
end;

Leider geht das nicht, XCOPY wird wohl gestartet, es öffnet sich ein KONSOLE Fenster, schliesst sich gleicht wieder...
ich kriege also meine HANDLES nicht umgebogen. Kennt sich da jemand aus? Bitte um Hilfe.

Ich möchte nämlich machen, dass mein selbstprogrammierter HTTPServer bzw. HTTPProxy (in Delphi gecodet) CGIs unterstützt....

vielen Dank.
Adrian
Gespeichert
Thomas Stutz
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1784



WWW
« Antworten #1 am: 07.04.2002, 15:33:45 »

Schau mal in den Programmier Tips nach:

[a href="http://www.swissdelphicenter.ch/de/showcode.php?id=683" target="_blank"]http://www.swissdelphicenter.ch/de/showcode.php?id=683[/a]
Gespeichert

(¯`·._tom_.·´¯)

Tipp: Viele Antworten auf Fragen gibt's hier:
http://www.swissdelphicenter.ch/de/tipsuchen.php
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS