Problème avec exec(): lancement d'un processus

Problème avec exec(): lancement d'un processus - PHP - Programmation

Marsh Posté le 11-04-2006 à 10:44:50    

Bonjour,
 
à l'aide de la commande exec() je cherche à lancer un logiciel (qui possède bien entendu une interface graphique) sur mon serveur (qui tourne sous IIS 5... :sweat: ).
 
J'ai donc essayé:
 
 

Code :
  1. echo "lancement<br>";
  2. echo (exec(escapeshellarg("start C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE" )));
  3. echo "lancé";


ceci me lance bien IE, mais en processus: je n'ai pas l'interface qui apparait  :cry:  
 
Ce que je ne comprends pas, c'est que tout le monde me dit que ça lance l'interface, mais moi non...
Lorsque je consulte la table des processus, IE a été lancé par SYSTEM (je suppose que c'est parce que IIS a été lancé lui aussi par SYSTEM?)
 
Merci pour votre aide ;)
 
PS: si je ne suis pas assez clair (ce qui est probable lol), n'hésitez pas à le dire  :na:


Message édité par TheKaosTheory le 11-04-2006 à 10:48:08
Reply

Marsh Posté le 11-04-2006 à 10:44:50   

Reply

Marsh Posté le 11-04-2006 à 13:32:42    

Essaye de lancer autre chose que IE, genre notepad, parceque je ne suis pas sûr que ça veuille dire grand chose de trouver IE dans la tables des processus.

Reply

Marsh Posté le 11-04-2006 à 13:53:44    

j'ai essayé notepad, explore,...mais rien ne se lance à l'écran...je n'ai que des processus

Reply

Marsh Posté le 11-04-2006 à 14:31:04    

une config de IIS alors? je ne suis pas expert

Reply

Marsh Posté le 11-04-2006 à 14:38:25    

escapeshellarg .... ça supprime justement pas le "start" ?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 11-04-2006 à 14:57:35    

j'ai fait affiché le résultat de  
       escapeshellarg("start iexplore" )
et le start reste bien...
 
merci nargy ;) (moi non plus je suis pas très fan d'IIS)


Message édité par TheKaosTheory le 11-04-2006 à 16:55:53
Reply

Marsh Posté le 11-04-2006 à 16:42:37    

ha oui, tu devrais utiliser escapeshellarg et aussi escapeshellcommand


Message édité par nargy le 11-04-2006 à 16:42:48
Reply

Marsh Posté le 11-04-2006 à 17:10:47    

je viens d'essayer, mais ça ne change en rien ma commande...qui marche, enfin qui est exécuté par php et aussi par msdos puisque ça me lance un processus...mais qui ne fait pas ce que je veux lol
 
j'ai pensé à utiliser du javascript: je lance un script via le php, et ce script lancera le logiciel
PHP

Code :
  1. if (file_exists("C:\\www\\Web\\lancement.js" ))
  2. {
  3. echo "lancement du ficher <br>";
  4. $src=escapeshellarg("start C:\\www\\Web\\lancement.js" );
  5. exec($src);
  6. echo "fichier lancé";
  7. }


 
JavaScript

Code :
  1. var wshShell = new ActiveXObject("WScript.Shell" );
  2. wshShell.Run("IEXPLORE", 1, false);


 
je vais cherché à quoi servent les arguments de Run...(le 1 sert il me semble justement à lancer l'appli en tache de fond, minimisé, maximisé, etc..)
mais si à tout hasard, quelqu'un sait déjà à quoi ils servent ;)
 
PS: je suis en réseau local, ce serait-il possible de faire exécuter une commance dos sur le client, qui lancerait l'appli sur le serveur? :whistle:

Reply

Marsh Posté le 11-04-2006 à 17:55:17    

a mon avis, tu te prends la tête, a moins que tu trouve quelqu'un qui connaisse un peu la config IIS, tu irai plus vite à cherche sur le net ou sur msdn si il y a une config spéciale pour lancer des applis derrière IIS.
 
SInon, as tu essayé un .bat tout bête?

Reply

Marsh Posté le 11-04-2006 à 17:56:18    

autre solution: passer par un fichier de communication entre un serveur d'applis fait maison.

Reply

Marsh Posté le 11-04-2006 à 17:56:18   

Reply

Marsh Posté le 12-04-2006 à 08:26:22    

sur msdn j'ai trouvé un bout de code qui pourrait me permettre de lancer l'appli avec un autre user name, je vais essayé pour voir...
 
qu'est ce que tu entends pas "passer par un fichier de comm"? cad un fichier intermédiaire?...

Reply

Marsh Posté le 12-04-2006 à 11:07:15    

ouais, genre C:\private\comm.fifo
puis tu as un programme (serveur) qui lit en boucle ce fichier, quand il a une url qui arrive dans le fichier, il lance IE avec cette url.
côté site web, tu écrit l'url voulue dans le fichier de comm, et paf IE apparaît
niveau sécurité, faire les restrictions neessaires sur le fichier de comm.
(c'est une méthode infaillible, mais longue à developper)

Reply

Marsh Posté le 13-04-2006 à 08:07:27    

lol, c'est exactement ce que je fais maintenant:
je crée un fichier à l'aide de php, et mon "daemon" regarde environ toutes les minutes si le fichier existe.
S'il existe, je fais le traitement (et je supprime le fichier), sinon le programme continue d'attendre.
En effet, ça marche super bien ;)
Merci pour votre aide ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed