Norbert: DOS-Box bei shell_exec() unterdruecken

Hallo,

in einem Script wird zweimal der Befehl
$ret = shell_exec('ipconfig -flushdns');
ausgefuehrt, klappt auch, bis eben auf die bloede DOS-Box.

Habe schon versucht 'ipconfig.exe' mit dem hier schon mal genannten Tool
'exetype.pl' zu behandeln, nuetzt aber leider nix.
Hat man da noch eine Chance oder muss ich auf VisualBasic zurueckgreifen?

Gruss und Dank
Norbert

  1. Hello,

    in einem Script wird zweimal der Befehl
    $ret = shell_exec('ipconfig -flushdns');
    ausgefuehrt, klappt auch, bis eben auf die bloede DOS-Box.

    Habe schon versucht 'ipconfig.exe' mit dem hier schon mal genannten Tool
    'exetype.pl' zu behandeln, nuetzt aber leider nix.
    Hat man da noch eine Chance oder muss ich auf VisualBasic zurueckgreifen?

    Das heißt also, dass Dein Webserver auf einer WinDOSe läuft?
    Hast Du Dir auch die UCN von exec() angesehen? Da gibt es Tipps, wei man die Ausgabe behandeln muss.

    Kann sein, dass die bei shell_exec() auch funktionieren :-)

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hallo Tom,

      Das heißt also, dass Dein Webserver auf einer WinDOSe läuft?

      wieso Webserver ...
      Es handelt sich um ein Script, welches alle zwei Minten vom Taskplaner
      aktiviert wird um die Verbindung zum Internet zu loggen.

      Hast Du Dir auch die UCN von exec() angesehen?
      Da gibt es Tipps, wei man die Ausgabe behandeln muss.

      hmm,
      was meinst Du genau, mir ist nichts aufgefallen ...

      Gruss und Dank
      Norbert

      1. Hello,

        Das heißt also, dass Dein Webserver auf einer WinDOSe läuft?
        wieso Webserver ...
        Es handelt sich um ein Script, welches alle zwei Minten vom Taskplaner
        aktiviert wird um die Verbindung zum Internet zu loggen.

        Also hast Du das CLI von PHP benutzt?

        Hast Du Dir auch die UCN von exec() angesehen?
        Da gibt es Tipps, wei man die Ausgabe behandeln muss.
        hmm,
        was meinst Du genau, mir ist nichts aufgefallen ...

        Da ist ein Beitrag, der darstellt, wie man die Ausgabe in den Mülleimer schickt.
        Allerdings weiß ich nicht, ob es bei Dir auf einer WinDOSe auch funktioniert

        entweder einhach  ">NUL 2>&1"   könnte klappen...

        oder $pid = exec("/usr/local/bin/php run.php > /dev/null & echo $!");
        bezieht sich allerdings auf Linux und handelt davon, wie man die Prozess-ID abfragen kann, die normalen Ausgaben in den Mülleimer schiebt und den Prozess in den Hintergrund verfrachtet. Was davon für Windows noch brauchbares übrig bleibt, vermag ich nicht zu sagen.

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. Hallo Tom,

          Da ist ein Beitrag, der darstellt, wie man die Ausgabe in den Mülleimer schickt.
          Allerdings weiß ich nicht, ob es bei Dir auf einer WinDOSe auch funktioniert

          im Prinzip JA, aber:
          eigentlich wollte ich die Ausgabe des Befehles auswerten!
          Deshalb hatte ich schon versucht, die Ausgabe in eine Datei zu lenken.
          Dies funktionierte auch, aber die DOS-Box hat das nicht beeindruckt ... :-((

          PS:
          Wenn man in VisualBasic Shellbefehle ausfuehrt, kann man mit Optionen steuern,
          ob dieser Prozess sichtbar, unsichbar, mit Fokus oder ohne Fokus ausgefuehrt wird.

          Gruss und Dank
          Norbert

          1. Hello,

            Wenn man in VisualBasic Shellbefehle ausfuehrt, kann man mit Optionen steuern,
            ob dieser Prozess sichtbar, unsichbar, mit Fokus oder ohne Fokus ausgefuehrt wird.

            Das wurde hier neulich schon einmal beschrieben, wei das gehen könnte.
            Soweit ich mich erinnere, wurde das CGI so gepatched, dass es keine Ausgaben mehr vornimmt.

            Du müsstest einfach mal die Archivsuche 2007 bemühen und nach den Begriffen CLI, CGI, PHP suchen. Es ist noch nicht lange her.

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

            1. Hallo Tom,

              Das wurde hier neulich schon einmal beschrieben, wei das gehen könnte.

              weiss ich,
              die PHP.exe wurde so gepatcht und das CLI-Script macht deshalb auch keine DOS-Box auf.
              Aber im CLI-Script selbst kommt noch "$ret = shell_exec('ipconfig -flushdns');" zum Einsatz,
              und diese Befehlszeile macht ein eigene DOS-Box auf.
              Der Versuch 'ipconfig.exe' selbst auch zu patchen hat leider nix gebracht, siehe OP.

              Gruss und Dank
              Norbert

              1. Hello,

                da hilft dann nur die Billigmethode:

                Mach Dir einen Link auf dem Desktop auf
                Dem weist Du dann als Programm die Zeile zu.
                Im Link stellst Du ein, dass er minimiert ausgeführt werden soll.

                Dann hast Du wenigstens kein Fenster, sondern nur ein kurzes Aufblitzen des Button in der Taskleiste.
                Bei mir funktioniert das jedenfalls so.

                Ist dann zwar eine "Shell" mehr drum herumgepackt, aber das dürfte nur Millisekunden ausmachen.

                Harzliche Grüße vom Berg
                http://bergpost.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)