programm mit php ausführen ohne auf beenden warten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • programm mit php ausführen ohne auf beenden warten

    hi

    ich habe da ein klitzekleines problem.
    und zwar dieses.

    wenn ich mit:
    exec('J:\backup\Abe_alt\irfanview\i_view32.exe D:\Apache Group\Apache2\htdocs\fertig\file-grabber\pics\01755-01.jpg /one');

    ein programm ausführem, hier irfanview, geht das script nicht weiter, bis irfan geschlossen ist.


    kann mir da jemand helfen??


    in phpmanual heisst es ja:
    Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.
    aber wie kann ich das machen, bei einem programm, welches ich nicht geschieben habe.

    Zuletzt geändert von fabio; 23.11.2003, 11:11.

  • #2
    Das Ausführen im Hintergrund bezieht sich wohl eher auf Linux/Unix ... hier reicht es nämlich, dem Kommando ein '&' anzuhängen, um den Prozess in den Hintergrund zu schicken.

    Wie sagt man das nu Windows? Kein Plan ... aber wenn IrfanView als Standard-Anwendung läuft, hilft vielleicht
    exec('start D:\Apache Group\Apache2\htdocs\fertig\file-grabber\pics\01755-01.jpg');

    Aber warum eigentlich nicht einfach ein neues Browser-Fenster öffnen?
    <a href="D:\Apache Group\Apache2\htdocs\fertig\file-grabber\pics\01755-01.jpg" target="bild">01755-01.jpg</a>
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      eventuell hilft ja auch
      Code:
      start pfad_zu_irfanview
      schau einfach mal in der eingebauaufforderung, was start macht und was für parameter du da hast
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        hi

        also das ist so.
        bei der ausführ optition (start -> ausführen) kann ich 'J:\backup\Abe_alt\irfanview\i_view32.exe D:\Apache Group\Apache2\htdocs\fertig\file-grabber\pics\01755-01.jpg /one' eingeben, und es ist alles gut.
        das irfan view startet mit dem richtigen bild.

        wenn ich es mit exec('J:\backup\Abe_alt\irfanview\i_view32.exe D:\Apache Group\Apache2\htdocs\fertig\file-grabber\pics\01755-01.jpg /one'); bei PHP ausführe, klappt auch alles.
        nur leider wartet das PHP script darauf, bis das irfanview wieder geschlossen ist, bis es weiter macht im script ausführen.

        also, der ganze code, welcher nach dem exec() kommt, wird erst ausgeführt, wenn irfanview beendet ist.


        weiss jemand, wie ich das ändern kann??

        Kommentar


        • #5
          Code:
          [b]C:\>start -?[/b]
          Die Datei "-?" kann nicht gefunden werden.
          
          C:\Dokumente und Einstellungen\Matthias>start /?
          Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen Befehl
          auszuführen.
          
          START ["Titel"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
                [/LOW | /NORMAL | /HIGH | /REALTIME] | /ABOVENORMAL | /BELOWNORMAL]
                [[b]/WAIT[/b]] [/B] [Befehl/Programm]
                [Parameter]
          
            "Titel"     Der Titel des neuen Fensters.
            Pfad        Startverzeichnis.
            B           Startet Anwendung, ohne ein neues Fenster zu öffnen. Die
                        Anwendung ignoriert STRG+C. Wenn die Anwendung nicht selbständi
                        STRG+C überprüft, ist STRG+UNTBR die einzige Möglichkeit, um di
                        Anwendung abzubrechen.
            I           Die CMD.EXE beim Aufruf übergebene Umgebung soll die neue
                        aktuelle Umgebung sein.
            MIN         Startet das Fenster minimiert.
            MAX         Startet das Fenster maximiert.
            SEPARATE    Startet 16-Bit-Windows-Programm in separatem Speicherbereich.
            SHARED      Startet 16-Bit-Windows-Programm in gemeinsamen Speicherbereich.
            LOW         Startet Anwendung in IDLE-Prioritätsklasse.
            NORMAL      Startet Anwendung in der NORMAL-Prioritätsklasse.
            HIGH        Startet Anwendung in der HIGH-Prioritätsklasse.
            REALTIME    Startet Anwendung in der REALTIME-Prioritätsklasse.
            ABOVENORMAL Startet Anwendung in der ABOVENORMAL-Prioritätsklasse.
            BELOWNORMAL Startet Anwendung in der BELOWNORMAL-Prioritätsklasse.
          [b]  WAIT        Startet die Anwendung und wartet auf das Ende.[/b]
            Befehl/Programm
                        Wenn ein interner Befehl oder eine Batchdatei verwendet wird,
                        wird das neue CMD-Fenster mit Parameter /K gestartet.
                        Das bedeutet, dass das Fenster erhalten bleibt, nachdem der
                        Befehl ausgeführt wurde.
                        Wenn dies nicht der Fall ist, wird das Programm entweder
                        als Anwendung in einem Fenster oder als Konsolenanwendung
                        gestartet.
            Parameter   Parameter, die an den Befehl oder das Programm übergeben werden
                        sollen.
          hth
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar

          Lädt...
          X