Announcement

Collapse
No announcement yet.

Problem mit der Übergabe von Parametern an ein ext. Programm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit der Übergabe von Parametern an ein ext. Programm

    Ok, folgendes:
    Ich möchte per winexec (oder irgendeinen anderen execute-befehl)
    netstat mit Parametern so starten, das eine Datei erstellt wird, in der
    die Ergebnisse gespeichert werden: netstat -a > output.txt -
    diese sollte dann später ausgelesen werden.
    Unter der DOS-Eingabeaufforderung eingegeben funktioniert es auch
    wurderbar, doch sobald ich es per delphi versuche, wird nur netstat
    unter dem Parameter '?' gestartet. Genaugenommen entspricht die
    winexec-Funktion dabei genau der Ausführen-Funktion von Windows,
    denn das reagiert auf die Angabe dieses Parameters genauso.

    BITTE!, was kann ich tun?

  • #2
    Ich verwende zum ausführen eines anderes Programmes die Shellexecute-Funktion. Dort muss man den Pfad, die auszuführende Datei und die Parameter einzelnen angeben. Ich hab auch schon mit mehreren Parametern gearbeitet und es funktioniert einwandfrei.

    Probiers mal:

    ShellExecute(Handle, 'open', PChar('EXE_DATEI.exe'), PChar('PARAMETER'), PChar('VERZEICHNIS'), SW_SHOW);

    In der Delphi-Hilfe steht alles weitere zu den Parametern

    Comment


    • #3
      Das funktioniert auch, aber jedoch nicht mit dem Parameter "> output.txt".
      Ich kann zwar jeden anderen Parameter, der unter der Anwendung deklariert ist,
      auch verwenden, jedoch schreibt er das Ergebnis nicht in eine Datei, wie es
      für mich unbedingt nötig ist.
      Wie kann ich den Parameter übergeben, der die Output-Datei erstellt

      Comment


      • #4
        Hallo,

        für dieses Problem gibt es verschiedene Lösungsansätze, deren Gewichtung davon abhängt, ob die externe Datei mit den Ergebnissen überhaupt benötigt wird:

        1. Der Aufruf und die Umleitung der Ausgabe in eine Datei wird in eine BAT-Datei gepackt, die vom Programm startet wird.

        2. Das eigene Programm startet das externe Programm und liest direkt den Output über das Consolenfenster aus (ohne den Umweg über die Datei).

        3. Das eigene Programm startet das externe Programm als Child-Prozess, bringt sich in den Besitz des Handles für die Standardausgabe (STD_OUTPUT_HANDLE) und kann so direkt mitlesen.

        In meinem Buch <b>Delphi Win32 Lösungen</b> sind Beispiele für 2. (Seite 17..20) und 3. (Seite 486..489) zu finden

        Comment

        Working...
        X