Torsten Berger: Externe Programme aufrufen und beenden?

Hallo!

ich möchte über meine PHP-Oberfläche ein bestimmtes Programm (.bat) über Windows starten. Nun habe ich es schon geschafft, über exec ein Verzeichniss auslesen zu lassen. Aber die bat läßt sich nicht starten, denn geschweige ein Programm laufen zu lassen, während PHP weiter arbeitet.

Weiß jemand Rat? Und es ist es eventuell möglich, dieses Programm später auch wieder vom Webserver schließen zu lassen? Vielleicht gibt es da auch Programme die man installiert und die so etwas übernehmen können???

Danke schon einmal. Gruß
Torsten

  1. Tach auch,
    das währe aber böse wenn man das machen könnte
    (ich weiß nicht ob es geht:-)),
    denn dann könte man ja in die .bat Datei
    einen schönen befehl wie:

    format c: \q
    pause
    j

    eingeben und damit hättest du in jedemfall
    die Schlagzeilen auf deiner Seite
    oder nicht????

    Grüße Speedy7777

    1. Tach auch,
      das währe aber böse wenn man das machen könnte
      (ich weiß nicht ob es geht:-)),
      denn dann könte man ja in die .bat Datei
      einen schönen befehl wie:

      format c: \q
      pause
      j

      eingeben und damit hättest du in jedemfall
      die Schlagzeilen auf deiner Seite
      oder nicht????

      Grüße Speedy7777

      das die Sicherheit darunter leidet ist mir klar. Dann darf die bat nur lesbar aber nicht änderbar sein. Kann man ja eventuell auch über SSL lösen, das man nur mit verschlüsseltem Login und Passwort eine solche Funktion ausführen darf.

      Vielleicht hat ja jemand noch eine Idee...

      Gruß

  2. Hi Torsten,

    ich möchte über meine PHP-Oberfläche ein bestimmtes Programm (.bat)

    meine Windows-Architekturkenntnisse sind eher spärlich, aber ich vermute
    folgendes:

    Eine Batch-Datei ist eben _kein_ "Programm" (also keine Datei, welche
    Maschinencode enthält und vom Betriebssystemlader ausgeführt werden kann),
    sondern ein "Skript", also eine zunächst einmal ganz normale ASCII-Datei,
    welche erst dann eine Bedeutung bekommt, wenn ein darauf spezialisiertes
    Programm gestartet wurde und diese Datei einliest und interpretiert.

    Dieses Programm wäre in Deinem Falle - je nach Windows-Dialekt - eine
    passende Shell, beispielsweise "command.com". Probier mal, diese per "exec"
    zu starten und ihr als Parameter den Pfadnamen Deines Skript zu übergeben.

    Daß Du auf Betriebssystemebene eine Batch-Datei einfach durch Doppelklicken
    "starten" kannst, liegt daran, daß die entsprechende Umgebung (z. B. der
    Windows-Explorer) die Verknüpfung zwischen der Endung ".bat" und dem dazu
    passenden Interpreter "command.com" kennt und selbst das richtige Programm
    startet. Die "exec"-Funktion von PHP ist aber kein Windows-Explorer ...

    Viele Grüße
          Michael