Programm per PHP starten

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

  • #16
    Hola, hab das gleiche Problem, denke ich zumindest.

    Ich rufe OpenOffice mit exec auf und möchte ein Makro ausführen zum Konvertieren von Dateien.
    Also genauer gesagt mach ich es im Moment über eine Batchdatei.
    Um Schnickschnack mit Rechten zu umgehen, hab ich die Batchdatei mal aus php raus erstellen lassen.

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    $fp "test.bat";
    $inhalt '"C:\Programme\OpenOffice.org 2.0\program\soffice.exe" 
    -invisible "macro:///Standard.MyConversions.saveAsTxt
    (D:\eclipse_worksp\zend_Test\1.doc,D:\eclipse_worksp\zend_Test\test.txt)"'
    ;
    $f fopen($fp,"w+");
    fwrite($f,$inhalt);
    fclose($f);

          
    $cmd=('test.bat');
          
    exec($cmd);


    echo 
    '<br>';
    echo
    "geht, geht net, geht, geht net...";
    ?>
    (Backslashs sind drin, der schmeißt die hier nur raus. Code ist also soweit korrekt)

    Im Taskmanager sehe ich nun das der Prozess (Openoffice) gestartet wurde. Nun weiß ich das PHP solange der Porzess läuft nix mehr macht. Sieht man auch am Browser, rennt sich blöd.
    Am Makro liegts nicht, die Batchdatei funktioniert einwandfrei, auch wenn ich das Makro über die Shell starte gibts kein Problem. Sogar wenn ich das Makro (bzw. das entsprechende php Skript) mit php.exe skript.php aus der Kommandozeile ausführe, läuft es fehlerfrei. Nur eben vom Browser aus nicht. Habe allen vorhandenen Benutzern alle Rechte gegeben, ... nix....NERV.

    Habs spaßeshalber auch mal mit Notepad versucht. Gleiche Geschicht. Prozess startet, aber sonst passiert nix (wobei das ja glaube ich normal ist, weil exec ja alles invisible startet...).

    Die Lösung von toco hört sich ja vielversprechend an, kann ich aber nicht so recht nachvollziehen, was er da genau macht und woran es gelegen hat.

    Das gleiche Problem hab ich übrigens nicht nur bei Apache, sondern auch bei IIS.
    Zuletzt geändert von Skull77; 22.09.2006, 10:49.

    Kommentar


    • #17
      Nur mal so als Tip..

      Was macht php denn aus C:\Programme ????
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Kommentar


      • #18
        ??? Hä? Keine Ahnung, was macht es? Steh auf dem Schlauch!!
        Also eigentlich sollte es so gehen, Prozess wird ja auch gestartet, also stimmt der Pfad.

        Kommentar


        • #19
          Nee, ich stand jetzt auf dem Schlauch.. Sry.

          Hier vielleicht was interessantes aus dem PHP Manual zu exec

          I too wrestled with getting a program to run in the background in Windows while the script continues to execute. This method unlike the other solutions allows you to start any program minimized, maximized, or with no window at all. llbra@phpbrasil's solution does work but it sometimes produces an unwanted window on the desktop when you really want the task to run hidden.

          start Notepad.exe minimized in the background:
          $WshShell = new COM("WScript.Shell");
          $oExec = $WshShell->Run("notepad.exe", 7, false);

          start a shell command invisible in the background:
          $WshShell = new COM("WScript.Shell");
          $oExec = $WshShell->Run("cmd /C dir /S %windir%", 0, false);

          start MSPaint maximized and wait for you to close it before continuing the script:
          $WshShell = new COM("WScript.Shell");
          $oExec = $WshShell->Run("mspaint.exe", 3, true);

          For more info on the Run() method go to:
          http://msdn.microsoft.com/library/en...l/wsMthRun.asp
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #20
            Kein Problem, war nur etwas verwirrt..

            Also damit bekomm ich es auch nicht hin. Selbst die 3 Beispiele funktionieren bei mir nicht. Im Prinzip wieder das gleiche Problem.
            Wenn ich es auf mein Problem übertrage, wirds caotisch. Hatte plötzlich alle Prozesse wenigstens 2 bis 3 mal auf. Und dem entsprechend ging garnix mehr... Evl auch irgend eine Syntax falsch, muss noch etwas rumforsten...

            Mein Apache wird übrigens von SYSTEM gestartet, falls das etwas hilft...

            p.s. habs nu mal auf Admin geändert. Nu wird alles was irgednwie damit zusammenhängt vom Admin ausgeführt. Scheint aber auch nix zu bringen.
            Zuletzt geändert von Skull77; 22.09.2006, 12:50.

            Kommentar


            • #21
              Ok, denke mal das ich die Lösung nu hab. Kanns noch net 100%ig sagen, weil ich dafür OOo nochmal neu installieren muss.

              Ich habe jetzt einfach bei dem Dienst der Apche startet das Kontrollkästchen "Datenaustausch mit Desktop erlauben" (oder so ähnlich) aktiviert. Nun kann ich schon mal alle Programme öffnen. Jetzt funktioniert das nur bei OpenOffice mit den Makros noch nicht, weil die von dem Benutzer XY angelegt wurden. Wird OOo aber von dem Browser aus ausgeführt, wird es von dem Benutzer SYSTEM aufgerufen. Der Benutzer SYSTEM hat aber keine Makros in OOo. Nu installiere ich OOo als Netzwerkinstallation und habe damit nur noch einen Makroordner für alle und damit sollte es dann hoffentlich gehen!!

              ps.
              so, nu läufts!! FREU!!! Neu installieren von OOo hat aber nichts gebracht. Scheint als gäbe es keine vollwertige Netzwerkinstallation. Immer wenn ich nun versucht habe das Makro via PHP und exec aufzurufen, konnte er das Makro nicht finden (Fehlermeldung war klasse, gab keine...). Das lag daran, dass OOo mit dem Benutzernahmen SYSTEM aufgerufen wird. Die Makros wurden aber unter dem Benutzernamen XY erstellt und standen somit SYSTEM nicht zur Verfügung. Lösung des Problems (ich kann OOo nicht als SYSTEM öffnen): Ich habe mit exec OOo nur geöffnet. Dann die Makros erstellt. Nu kann ich endlich mit exec OOo und die Makros öffnen!!! SUUUUPER!!!

              Ich benötige das übrigens um mittels OOo alle einkommenden Formate in TXT zu konvertieren (oder was auch immer ich am Ende brauche). Sehr nützliche Sache das. Es gibt zwar ein zwei Tools die das etwas einfacher können, aber die sind nicht wirklich seriös und gefallen meinem Chef net.

              ENDE
              Zuletzt geändert von Skull77; 22.09.2006, 15:58.

              Kommentar

              Lädt...
              X