# exec() EXE-Programm starten



## pesoi (13. Dezember 2007)

Hello

Hier bin ich mal wieder.

Also folgende Problemm habe ich.

Eine programm.exe soll mit eine PHP-Script gestartet werde. Nach dem Start soll programm.exe weiterlaufen als Dienst. Php-Script aber nicht bis zum ende warten sondern mit dem weiteren Bearbeitung vortfahren.

so habe ich gesehen wird unter LINUX gemacht.

```
...
exec("programm.exe>dev\null\");
echo "Test erfogreich";
...
```
so unter windows.

```
...
exec("programm.exe>NUL");
echo "Test erfogreich";
...
```

also hier starte ich das programm.exe und übergebe die rukgabewert ins Nirwana.
Sollte jetzt der php-script weiter laufen. Tut er aber nicht. das programm wird gestartet und der PHP-Script wartet.

Betriebsystem: Windows XP und Win 2003.

Wer kann mir eine Ansatz geben, an was es liegt dass der Php-Script nicht beendet wird.
Oder wie kann man noch anders eine programm.exe per php starten.

Grüß aus Essen

pesoi


----------



## ByeBye 182971 (13. Dezember 2007)

http://de2.php.net/manual/de/ref.exec.php

dann bis zum Punkt Inhaltsverzeichnis scrollen.

Dort findest du ähnliche funktionen

Ach ja du könntest auch um das Script zu stoppen exit(); verwenden

EDIT: Sorry hab dich falsch verstanden du willst dass es weiterläuft.... ich kenn da nur continue(); aber ich wieß nicht ob das funktioniert.... bei dem Problem kanni ch leier nicht helfen, da ich mich mit den funktionen nicht auskenne


----------



## pesoi (13. Dezember 2007)

Hier eine Lösung:

Es lauft unter Windows ohne weiteres.


```
$cpr="parameter";
$configurator="start program.exe ";
$descriptorspec = array(
       0 => array("pipe", "r"),   // stdin
       1 => array("pipe", "w"),  // stdout
       2 => array("pipe", "w")   // stderr
);
$process = proc_open($configurator.$cpr, $descriptorspec, $pipes);
sleep(1);
proc_close($process);
```

also Programm wird in hintergrund gestartet. Wenn jemand auch das programm sehen will dann unter apache-dienst->Eigenschaften->Anmelden=> häckchen setzen "Daten austausch zwieschen Dienst und Desktop zulassen"=> WebServer neu starten. 

Grüß aus Essen

pesoi


----------



## metalllike (24. Mai 2008)

So. Ich weiß der Beitrag ist schon echt alt, aber weder Google noch die Suchfunktion hat mich weiter gebracht.

Zu meinem Problem.

```
exec("start C:\\Pfad\\Zum\\Programm.exe");
```

Funktioniert wunderbar.
Leider wird das Programm nach ca. 20 Sekunden beendet und genau das soll NICHT sein.
Wenn ich den Code exec(); ausführe soll das Programm gestartet werden und auch weiter laufen bis es entweder abschmiert oder von mir selber beendet wird.

Hat jemand eine Idee wie ich das anstellen kann?

Gruß
Metall


----------

