Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] .exe mit PHP ausführen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] .exe mit PHP ausführen

    Guten Tag zusammen!

    Ich programmiere für einen Freund eine Weboberfläche mit der man einen Arma 3 Server starten und stoppen kann!

    Diese beiden Funktionen funktionieren im Prinzip schon.
    Nur beim starten des Arma 3 Servers, also wenn ich auf der Seite auf den Button Server starten klicke, bleibt das PHP Skript hängen, führt aber die EXE Datei aus.
    Somit muss der Browser neugestartet werden, damit man den Server auch wieder stoppen kann.
    PHP-Code:
    <?php 
        
    try{    

            
    system('C:\Users\Administrator\Desktop\"Arma 3 Altis server"\arma3server.exe  -port=2302 "-config=C:\Users\Administrator\Desktop\Arma 3 Altis server\TADST\default\TADST_config.cfg" "-cfg=C:\Users\Administrator\Desktop\Arma 3 Altis server\TADST\default\TADST_basic.cfg" "-profiles=C:\Users\Administrator\Desktop\Arma 3 Altis server\TADST\default" -name=default "-mod=@Arma2NET;@life_server;Arma2NETMySQLPlugin;oth@x_altis-life-rpg_v3-1-2.altis" -nosplash -mod=@life_server;@arma2net; > nul');
            
        }catch(
    exception $e){
        
        }
        
    ?>
    Dieses PHP Skript wird aufgerufen, wenn der Button Server starten gedrückt wird.
    Ich habe Testweise statt dem Pfad zur arma3server.exe mal den Firefox getestet. Dieser wird gestartet und zugleich bleibt das Skript nicht hängen und ich kann die Website weiter normal benutzen.

    Ich würde mich um jede Hilfe freuen! =)

    MFG
    winserl

  • #2
    bist du dir sicher, dass du nach nul leiten wilsst, nicht null oder so?
    http://www.somacon.com/p395.php

    Kommentar


    • #3
      Der Browser bleibt hängen weil system() auf das ende des Programms wartet, was hier niemals passieren wird solange der Arma-Server läuft.

      Edit:
      Zitat von moma Beitrag anzeigen
      bist du dir sicher, dass du nach nul leiten wilsst, nicht null oder so?
      Anscheinend gibt es sowas unter Windows. Windows ist komisch
      [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

      Kommentar


      • #4
        Ich hab die Funktion so verstanden dass man hier "CMD" Befehle eingeben kann und die dann ausführen. Und ich wollte halt auf das Dummiegerät NUL umleiten weil ich keine Meldung auf der Site haben möchte.

        Ich hab mit dem system() auch schon eine Batchdatei aufgerufen und in der wird halt dann die EXE gestartet, jedoch tritt dann der gleiche Fehler auf.

        Ich werds mal mit dem hier versuchen:
        PHP-Code:
        $WshShell = new COM("WScript.Shell");
        $oExec $WshShell->Run('cmd /C start C:\Users\Administrator\Desktop\"Arma 3 Altis server"\arma3server.exe  -port=2302 "-config=C:\Users\Administrator\Desktop\Arma 3 Altis server\TADST\default\TADST_config.cfg" "-cfg=C:\Users\Administrator\Desktop\Arma 3 Altis server\TADST\default\TADST_basic.cfg" "-profiles=C:\Users\Administrator\Desktop\Arma 3 Altis server\TADST\default" -name=default "-mod=@Arma2NET;@life_server;Arma2NETMySQLPlugin;oth@x_altis-life-rpg_v3-1-2.altis" -nosplash -mod=@life_server;@arma2net; > nul'0false); 
        Vielen Dank für die Antworten!

        Kommentar


        • #5
          So hats bei mir funktioniert.
          PHP-Code:
          $cpr="Die Parameter";
          $configurator="start Pfad ";
          $descriptorspec = array(
                 
          => array("pipe""r"),   // stdin
                 
          => array("pipe""w"),  // stdout
                 
          => array("pipe""w")   // stderr
          );
          $process proc_open($configurator.$cpr$descriptorspec$pipes);
          sleep(1);
          proc_close($process); 
          Hier die Lösung.
          mfg
          winserl

          Kommentar

          Lädt...
          X