J'ai une page qui éxécute un script bat (tmp.bat). Dans ce fichier bat, il y a la commande "c:\program files\foobar2000\foobar2000.exe". (foobar est un lecteur audio)
jusque là tout va bien.
Quand j'utilise easyphp 1.8 (avec php5), le script est bien éxécuté et la fenetre de foobar s'affiche à l'écran. Avec wamp, le script est bien éxécuté aussi mais la fenetre de foobar ne s'affiche pas. Il est bien présent dans les processus, j'entends les musiques mais rien ne s'affiche à l'écran.
Comment faire pour que foobar s'affiche à l'écran avec wamp??
Je pense que le problème vient d'un paramètre différent dans le php.ini ou le httpd.conf entre la version d'easyphp et celle de wamp mais je n'arrive pas à trouver lequel. (j'ai essayé avec une autre application (notepad.exe de windows) et ca donne le même résultat).
J'attend vos réponses avec impatience car là je sèche.
safe_mode_exec_dir chaîne de caractères Si PHP est utilisé en safe mode, (normalement avec wamp c'est le cas) les fonctions comme system() et toutes celles qui permettent l'exécution en ligne de commande refuseront d'exécuter des programmes qui ne sont pas dans ce dossier. Vous devez utiliser / en tant que séparateur de dossier sous tous les environnements, y compris Windows.
autre info : I almost gave up trying to get Windows XP w/ Apache 2 to use either system(), or exec() to run a batch file.
I would get nothing. After hours and hours of messing around with this I figured it must be some type of permission problem. (dugh!)
Long story a little shorter.. You have to give Apache permission to "interact with the desktop".
Here's how...
Start>Run>services.msc Right click "Apache...", select properties. Click on the "LOG ON" tab Check the box "Allow this service to interact with desktop" Click OK Restart Apache
Works great!
HOPE THIS HELPS SOMEONE! Too bad I didn't find a post like this before I figured it out myself. (I could have been working on something.)
c'est un code tout bete, du genre exec("tmp.bat". rien de plus. Mais que ce soit tmp.bat, notepad.exe ou n'importe quoi d'autre, c'est pareil.
et la commande system ne change rien.
ensuite en suivant ton exemple $test =`tmp.bat`, j'obtiens le même résultat : l'application se lance en tâche de fond (le processus tourne mais rien ne s'affiche)
pour ton 2eme message: le safe mode n'est pas activé (ce parametre est sur off dans le php.ini)
quand je fais la manip sur le service apache, la la fenêtre de l'application s'affiche bien à l'écran (joie ^^) mais une invite de commande (fenêtre dos) reste également à l'écran tant que l'application n'a pas été fermé. Cette fenêtre dos s'affiche à chaque fois (même avec notepad.exe par exemple), on dirait que php l'utilise pour lancer la commande.
donc mon problème n'est pas encore résolu. ce qui est bizarre c'est qu'avec easyphp je n'ai pas ce probème.
j'ai remplacé le php.ini de wamp par celui d'easyphp et aprés l'avoir configuré (remettre les bon répertoire etc) le problème est toujours la.
en fait, je pense plutôt que c'est à cause d'apache.
en effet easyphp utilise encore une version 1.x alors que wamp une 2.x
la manipulation consistant à cocher la case "autoriser le service à interagir avec le bureau" dans les propriétés du service d'apache fait bien apparaitre la fenêtre avec une invite de commande en plus. J'avais essayer un autre système d'install du même genre (mais je ne me rappelle plus de son nom) et avec celui-ci j'obtenais le même résultat que wamp et la case cochée pour le service apache.
ce qui me fait penser que c'est apache 2.x le fautif.
ce que je trouve bizarre aussi, c'est que je ne retrouve nulpart le même problème sur internet. Je suis le seul à avoir ce problème (sur 2 machines différentes) ou je suis le seul à vouloir lancer un script à partir d'une page php??
(tout à la suite avec un espace entre le chemin de l'exe et le paramètre)(c'est la syntaxe de foobar mais que ce soit ca ou un simple notepad.exe revient au même)
J'ai essayé avec apache2.2 mais je n'ai pas reussi à le faire marcher. J'ai bien changé le php5apache2.dll pour qu'il soit compatible avec apache2.2 mais lors que je lance une page php rien ne s'affiche : ni erreur ni bout de code ni la page bref une page toute blanche. Si j'ai la motive je retenterais ce week-end.