Lancer un exe en passant des paramètres 1 à 1

Lancer un exe en passant des paramètres 1 à 1 - PHP - Programmation

Marsh Posté le 16-07-2013 à 22:14:45    

Bonjour à tous,
 
Je galère un problème : je dois lancer un .exe via mon script php mais le problème c'est que ce fichier exe attend des paramètres en ligne de commande et non en argument.
 
J'ai donc trouvé une solution de contournement en passant par un script vbs qui lance mon exe et passe les paramètres 1 à 1 :

Code :
  1. Set objShell = WScript.CreateObject("WScript.Shell" )
  2. objShell.Run "toto.exe"
  3. WScript.Sleep 300
  4. objShell.SendKeys "tata.csv"
  5. objShell.SendKeys "{Enter}"
  6. WScript.Sleep 300
  7. objShell.SendKeys "mark"
  8. objShell.SendKeys "{Enter}"


 
Mais du coup je n'arrive pas à lancer ce script en php via exec ou system il ne lance rien.
 
Help please !
 
soit je reste sur le .exe mais faut que je trouve un moyen de passer 1 à 1 les paramètres, soit je passe par le vbs mais faut que j'arrive à le lancer sur le serveur :(
 
Merci bcp :)

Reply

Marsh Posté le 16-07-2013 à 22:14:45   

Reply

Marsh Posté le 17-07-2013 à 09:37:37    

Bonjour !
 
J'imagine que quand vous dites "en ligne de commande", vous voulez dire qu'ils sont entrés par l'opérateur ? (car "en ligne commande" ou "en argument", pour moi, c'est la même chose).
 
Si c'est le cas, pourquoi ne pas faire un exécutable qui fait la même chose que votre script vbs ? Cet exécutable récupère les arguments et les passe à l'exécutable qui vient d'être lancé, et cela devrait faire l'affaire, non ?
 
Ceci dit, comme je ne connais ni php, ni vbs, ce que je dis n'est peut-être pas pertinent.
 
Bonne continuation !

Reply

Marsh Posté le 17-07-2013 à 16:02:29    

Oui je voulais dire entré par l'opérateur.
 
C'est une idée mais je dois pouvoir modifier dynamiquement les variables qu e je passe à mon .exe. Le vbs me permettait de faire cela :/

Reply

Marsh Posté le 17-07-2013 à 17:25:44    

J'avance un peu, j'ai testé avec :

Code :
  1. $WshShell = new COM("WScript.Shell" );
  2. $output = $WshShell->Exec("C:/wamp/www/toto/Sourcesexe/go.vbs" )->StdOut->ReadAll;


 
En lancant la page j'ai une erreur :  
com_exception: <b>Source:</b> WshShell.Exec<br/><b>Description:</b> C:/wamp/www/toto/Sourcesexe/go.vbs n’est pas une application Win32 valide. in C:\wamp\www\toto\testexe.php on line 12
 
(Je précise quand lancant le .vbs à la main en double cliquant ca passe sans problème)
 
Une idée svp  ? :(


Message édité par thekingsky le 17-07-2013 à 17:27:23
Reply

Marsh Posté le 22-07-2013 à 10:53:50    

La lib COM est bien disponible (activée) sur le serveur (sous Windows bien entendu) ?
 
A noter que passer par COM, c'est pas top. Vaudrait mieux passer par la fonction php shell_exec() et faire exécuter directement le VBS par son interpréteur ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

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