Exécuter application depuis PHP sur Windows

Eléphanteau du PHP | 31 Messages

02 mai 2011, 14:07

Bonjour à tous, alors voilà j'aimerai faire une application Windows (C#) et exécuter des commandes dessus depuis PHP sans forcément avoir de retour. Donc je ne sais pas comment gérer ça, je viens de regarder les fonctions exec(), shell_exec(), passthru() et pcntl_exec() mais je ne sais lesquelles iraient le mieux.
En essayant exec() en local j'ai vu que mon application test se lançait mais que la page continue de s’exécuter si je ne ferme pas l'application...

Voilà, j'espère ne pas être trop vague.

Merci :)

ViPHP
xTG
ViPHP | 7331 Messages

02 mai 2011, 14:30

Évidemment quelque soit la fonction utilisée si l'application que tu lances n'as pas de commande pour se fermer automatiquement à la fin de son exécution elle restera ouverte.
Par exemple si tu lances la commande pour exécuter notepad.exe il restera ouvert.

Eléphanteau du PHP | 31 Messages

02 mai 2011, 14:51

Oui l'application reste ouverte ça je trouve ça normal. Mais c'est la page PHP qui continue de s’exécuter tant que l'application n'est pas fermée.

ViPHP
xTG
ViPHP | 7331 Messages

02 mai 2011, 17:00

Dans la documentation de exec :
If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.

Eléphanteau du PHP | 31 Messages

02 mai 2011, 17:29

C'est bon, j'ai trouvé. J'utilise le freeware pstools avec psexec qui marche à merveille: http://technet.microsoft.com/fr-fr/sysinternals

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 mai 2011, 19:39

yop,

question bête, mais pourquoi ne pas simplement utiliser la commande start de windows ?

s'il s'agit juste de démarrer un soft : start chemin/soft devrait suffir ?

plus d'info ? => help start dans une console ;)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 31 Messages

16 juin 2011, 15:07

Merci Moogli :)