Programm ausführen mit Paramenter

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

  • Programm ausführen mit Paramenter

    Hallo Zusammen,

    ich habe ein kleines Problem. Ich möcht ein Programm (unter WinXP Pro) aufrufen welches als Parameter einen Dateinamen bekommt.

    Wenn ich das Programm manuel über start -> Ausführen:

    start C:/Programme/AMPLWIN/ampl.exe plan.run

    Aufrufe, wird das Programm ausgeführt und schreibt mir eine Datei in der alles steht was ich von dem Programm wissen will und die Welt ist in Ordnung.

    Nun versuche ich in meinem Script folgendes:

    PHP-Code:
    exec('start C:/Programme/AMPLWIN/ampl.exe plan.run'
    leider passiert aber garnichts.

    Auch

    PHP-Code:
    exec('call "C:\\Programme\\AMPLWIN\\ampl.exe"  "plan.run"'
    und etliche ähnliche Aufrufe habe ich probiert.

    Das Problem scheint am Parameter zu liegen, wenn ich nur

    PHP-Code:
    exec('start C:\\Programme\\AMPLWIN\\ampl.exe'
    aufrufe wird laut Taskmanager ampl.exe ausgeführt und das PHP Skript hängt (wartet wohl auf eine Rückmeldung von ampl.exe).

    Ich habe auch schon mit popen und fwrite experimentiert, das ganze Forum Durchsucht und gegooglet, aber keine Lösung gefunden.

    Kann mir jemand von euch weiter helfen??? ich wäre euch sehr Dankbar.

    P.S.: Ich hab in meiner PHP.ini den eintrag save_mode nicht gefunden (seltsam oder?), aber da ampl.exe bei der Variante ohne Parameter ausgeführt wird, kann es ja nicht an mangelnder Berechtigung liegen ?!

    PP.S.: Beim Dienst Apache hab ich das Kästchen "Datenaustausch zwischen Dienst und Desktop zulassen" auch schon aktiviert (war bei einem Thema hier die Lösung des Problems).
    Zuletzt geändert von Mr.Programe; 20.08.2005, 19:31.
    Wissen ist Macht
    Power is nothing without control

  • #2
    wie ist denn mit:

    exec("C:\\Programme\\AMPLWIN\\ampl.exe plan.run");

    Kommentar


    • #3
      nein leider Funktioniert das nicht. Wenn ich start bzw. call weg lasse, startet er ampl.exe überhaupt nicht (weder mit noch ohne Parameter).
      Wissen ist Macht
      Power is nothing without control

      Kommentar


      • #4
        da musst du rumexperimentieren (immer schön mit E_ALL und ergebnisausgabe):

        evtl.
        PHP-Code:
        exec('start "programm.exe argument"'); 

        Kommentar


        • #5
          hmm, hab noch etwas rum experimentiert und das Programm in einen Unterordner meines Skriptes verschoben. Nun rufe ich es mit
          PHP-Code:
          exec('start planning\\ampl.exe plan.run'); 
          auf. Es startet (sichtbar) und schließt sofort wieder (sehr vielversprechent), aber leider erzeugt es nicht die Ausgabe Datei.
          Starte ich nun
          PHP-Code:
          exec('start planning\\ampl.exe'); 
          wird das Programm in einer Konsole (sichbar) gestartet.

          Das es nun sichtbar startet kann, kann ich mir damit erklären das ich das letzte mal nach dem änderen der "Datenaustausch zwischen Dienst und Desktop zulassen" Option nicht neu gestartet hatte.

          @ penizillin: wenn ich
          PHP-Code:
          exec('start "planning\\ampl.exe plan.run"'); 
          ausführe erhalte ich ein eine Konsole mit einer DOS eingabe aufforderung c:\wamp\www\fopra>

          Das heißt mein Problem hat sich nicht wirklich geändert, das Programm schluckt den verdammten Parameter nicht, wenn ich es von PHP aus aufrufe.
          Wissen ist Macht
          Power is nothing without control

          Kommentar


          • #6
            call ist doch für batch files, oder?
            Aber da fällt mir ein: Hast du mal versucht, die Befehlszeile in ein batch file zu schreiben und dieses von PHP aus aufzurufen?

            Kommentar


            • #7
              geile Idee, sie funktioniert.

              in meiner run.bat steht:
              start C:\wamp\www\fopra\planning\ampl.exe plan.run

              und mein Skript ruft nur noch
              PHP-Code:
              exec('call planning\\run.bat'); 
              auf.

              Allen Beteiligten und im besonderen onemorenerd vielen Danke für die schnelle Hilfe.
              Wissen ist Macht
              Power is nothing without control

              Kommentar


              • #8
                hmmm, oder doch nicht :-(

                wenn ich das Skript mit start->Ausführen-> C:\wamp\www\fopra\planning\run.bat

                ausführe wird die Datei erstellt.

                Rufe ich die Batchdatei wie oben beschrieben auf, taucht kurz des Dos-Fenster auf und verschwindet wieder, aber die Datei wird nicht erstellt.

                Scheint fast als hätte ampl.exe nicht die rechte die Datei zu erstellen bzw. zu ändern, wenn ich es mit hilfe von PHP aufrufe.

                PHP selbst erstellt aber an anderer stelle in meinem skript schon Datei (mit fopen), daher bin ich bisher nicht auf diese Idee gekommen. Kann es sein, das PHP selbst mehr rechte hat als die Anwendungen (ampl.exe) die es aufruft???
                Wissen ist Macht
                Power is nothing without control

                Kommentar


                • #9
                  call: "Ruft eine Batchdatei von einer anderen aus auf."
                  start: "Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen Befehl auszuführen."

                  Also eher start als call verwenden.
                  Schau dir auch mal die Paramter /B, /I und /WAIT an (mit start /?).

                  Hast du es auch mal so probiert?
                  PHP-Code:
                  exec('start "planning\ampl.exe plan.run"'); 

                  Kommentar


                  • #10
                    onemorenerd, s. oben

                    Mr.Programe, das ist unter win32 wahrlich viel komplizierter als unter linux. zuweilen auch wegen der rechte. so kann das programm durchaus starten, darf aber eine andere datei nicht beschreiben.

                    versuch's mal als administrator mit
                    Code:
                    runas

                    Kommentar


                    • #11
                      hmm, auch nicht. Selber effekt wie die ganze Zeit.
                      Wissen ist Macht
                      Power is nothing without control

                      Kommentar


                      • #12
                        Original geschrieben von Mr.Programe
                        hmm, hab noch etwas rum experimentiert und das Programm in einen Unterordner meines Skriptes verschoben. Nun rufe ich es mit
                        PHP-Code:
                        exec('start planning\\ampl.exe plan.run'); 
                        auf. Es startet (sichtbar) und schließt sofort wieder (sehr vielversprechent), aber leider erzeugt es nicht die Ausgabe Datei.
                        hellolele,

                        bau doch mal einfach als letzten befehl

                        pause

                        in deine bat datei ein.
                        so sollte man doch sehen, was für meldungen durchrauschen?

                        kuempi

                        Kommentar

                        Lädt...
                        X