[PHP] comment lancer un prog windows ?

Nico -  
 neoselen -
Bonjour,
Je souhaiterais lancer un programme windows (internet explorer par exemple) à partir d'un PHP.
Actuellement je fais :

<?
exec("C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE");
?>

Mais ça ne fonctionne pas....
j'ai également utilisé la commande "system", mais sans succès.

Avez vous une idée ?

8 réponses

  1. Frédéric
     
    salut,
    çà fait quelques temps que je travaille pour faire fonctionner un exe quelconque à partir de php 5 sur apache 2, et sur windows xp pro sp2, donc je confirme :

    - pas de safe mode (je dois faire des tests s'il est activé, dans le répertoire réservé)
    - placer le .exe dans un dossier pas trop loin de la racine, sans espace dans le chemin (qui doit donc etre court)
    - créer un fichier .bat avec le chemin complet de l'exe
    - utliser la fonction exec par exemple, qui appelle la commande start avec les bons paramètres

    çà donne :

    dans le php :

    $cmdline = "start \"titre\" /Dc:\programme\ lanceur.bat";
    exec($cmdline);

    et dans le fichier lanceur.bat qui est dans c:\programme on a :

    c:\programme\monprogramme.exe

    détail sur la commande windows : start

    https://ss64.com/nt/start.html

    à priori je n'ai fait aucun autre réglage que les réglages par défaut sur xp pro et apache

    Voilà j'espère que çà va vous aider !

    Frédéirc
    1
  2. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Salut

    c'est normal le système aime pas les espaces dans la commande, comme Internet"espace"Explorer ca il apprécie pas.

    Déja essaie de mettre un executable indépendant dans Porgram Files et teste exec("C:\\program~1\\nom_de_lexecutable");

    Apres faudra tester avec IEXPLORER.
    0
    1. Nico
       
      Merci pour ton aide Arth,

      j'ai suivi ton conseil, et copié le binaire iexplorer sous C:/Temp, puis fais :

      exec("C:\\Temp\\IEXPLORE.EXE");

      Mais, sans résultat, le navigateur ne se lance toujours pas.....
      0
  3. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    essaie avec: system("start C:\\Temp\\nomdelexecutable");
    0
    1. Nico
       
      Non, même avec cette commande, le navigateur ne se lance pas.
      Pourtant à la main (clic sur exe), il se lance bien...
      N'y aurait il pas des parametres dans le php.ini qui me bloquerait la commande exec ?
      0
  4. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Tu peux pas tenter de faire une applet java qui lancerait IE?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ricric Messages postés 34 Statut Membre 7
     
    Bonsoir
    SAFE_MODE est peut-être activé.
    0
  7. Nico
     
    Merci à tous pour votre aide.
    En fait, j'ai trouvé une parade pour que ça fonctionne : je passe par un fichier .bat :

    dans mon PHP :

    exec("C:\\Temp\\ie.bat");

    et dans ie.bat :

    C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE

    Et là ça fonctionne.... allez savoir.............

    A+
    0
    1. neoselen
       
      forcément, si tu pars du principe que iexplorer est dans C:\Temp\ tu n'y arriveras pas...
      et aussi,important: pour que ton programme soit compatible avec les autres windows, tu devrais utiliser dans ton .bat des variables systèmes, te garantissant à toi et aux autres une plus grande facilité d'utilisation.
      je ne dis pas:
      C:/Documents And Settings/moi/Bureau
      mais:
      %homedrive%%homepath%
      ce qui évitera à ton batch de foirer au moment de passer sur C:\Documents.
      ce qui garantis pour un bureau installé sur un lecteur D ayant pour utilisateur zigouigoui de fonctionner !
      0
  8. marie
     
    Bonjour,

    J'ai le meme probleme mais sur un serveur linux.
    J'ai louer un serveur privé virtuel chez 1and1. Depuis une semaine je tente de faire marcher la fonction system.
    Le safe mode est bien desactivé ... je tourne en rond sans y arrivé, comment faire?

    Merci d'avances.

    MArie.
    0