Exécuter un programme exe

skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007 - 4 mars 2005 à 11:47
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 7 mars 2005 à 20:01
Bonjour,

J'ai un programme exe qui fonctionne très bien dans une cmd ou avec la commande run de windows.

Il accepte 4 paramètres.

la commande pour le lancer est:

Avec le run de Windows
"C:\Program Files\EasyPHP1-7\www\TEST\getmsg.exe" P:\SOURCE\APPL 1890460 C:\RECEPTA C:\RECEPTB

Avec la commande CMD
C:\Program Files\EasyPHP1-7\www\TEST>getmsg.exe P:\SOURCE\APPL 1890460 C:\RECEPTA C:\RECEPTB

Jusque là pas de problème

Cet exécutable se connecte à la base de donnée se trouvant sur P:\SOURCE\APPL récupère le fichier numéroter 1890460 et le copie dans les deux autres répertoires.

Comment puis je le faire exécuter dans un script AVEC PHP. Je souhaiterais faire un formulaire avec une textBox ou la personne indique seulement le numéro de fichier à récupérer.

J'ai essayer ceci mais ca ne fonctionne pas quelqu'un peu m'aider?

<?php
echo "";

echo "exécution lancée
";


$command = "getmsg.exe";
$inipath = "P:\SOURCE\APPL";
$docNo = "1890460";
$msgDir = "C:\RECEPTA";
$attachDir = "C:\RECEPTB";


echo $command.escapeshellarg($inipath).escapeshellarg($docNo).escapeshellarg($msgDir).escapeshellarg($attachDir);
$last_line =system($command.escapeshellarg($inipath).escapeshellarg($docNo).escapeshellarg($msgDir).escapeshellarg($attachDir));


echo "FIN D exécution";


// Affichage d'autres informations
echo "<hr />La dernière ligne lue : ' . $last_line . '";
?>

Merci de votre aide
skmancuso

10 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
4 mars 2005 à 11:53
salut !

essaie la commade "exec" ou "passthru".

ta solution se trouve peut etre là.

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
4 mars 2005 à 11:56
Salut,

Oui je suis d'accord mais j'ai aussi essayé et ca ne marche pas non plus. Je pense qu'il y a quelque chose dans la syntaxe qui m'échappe et qui fait que je ne comprend pas.

Si tu peux m'aider dans l'écriture syntaxique ca m'aiderais énormément.

Par exemple, ou est ce que je dois copier le fichier exécutable et comment est-ce que je dois spécifier le chemin? HTTP:/ ou plutôt C:/
?
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
4 mars 2005 à 13:25
re!

tu dois soit specifier un chemin relatif ('../myprog.exe'), soit specifier un chemin absolu local ('c:\\monprog.exe')


-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
4 mars 2005 à 13:56
j'ai vérifier j'ai mis le fichier dans le même répertoire que le fichier php qui l'appelle. Mais ca ne semble pas passer correctement.

Peut.-être que je passe mal les paramètres
Est ce qu'il existe un fichier exe simple pour que je teste déjà l'exécution sans paramètre? pour voir si je suis juste?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mars 2005 à 11:02
salut

lors de l'exécution d'un exe, rien ne s'affiche dans la page... donc c'est possible que tu n'ai rien vu...



et cette option est souvent désactivée...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
5 mars 2005 à 14:29
J'ai fais quelques tests mais rien ne marche!

Je me suis tout de même rendu compte de quelque chose.
Lorsque je lance ma page php, elle ouvre bien une cmd.exe et mon programme executable. on peut les visualiser dans le gestionnaire des tâches de windows.

Le problème est d'une part que l'explorateur tourne dans le vide comme s'il cherchait ou attendait quelque chose. D'autre part les processus lancés cmd.exe et getmsg.exe(le programme exe que je veut lancer). Ne réponde plus du tout et je ne peux même plus les killer depuis le gestionnaire.

Comment faire pour ouvrir une commande cmd.exe correctement sur le serveur.
Puis exécuter une ligne de commande préprogrammée du genre une string.
puis fermer le tout proprement sans que les processus reste en mémoire car après une centaine d'essai il faudra rebooter le système ce qui n'est malheusement pas envisageable.

Merci d'avance

Skmancuso
0
cs_JulienC Messages postés 13 Date d'inscription samedi 9 février 2002 Statut Membre Dernière intervention 26 juin 2005
6 mars 2005 à 13:50
Salut,

Je ne comprends pas pourquoi tu voudrais lancer cmd.exe !
Si tu veux exécuter un programme avec des paramètres, il suffit d'utiliser, par exemple, la fonction "exec". Exemple :
exec ("ping -n 1 -w 50 192.168.0.1", $buff);
J'ai utilisé volontairement plein de paramètres.

Pour ton programme, il faudrait par exemple utiliser :
exec ("getmsg.exe P:\SOURCE\APPL 1890460 C:\RECEPTA C:\RECEPTB", $buff)
$buff renvoie alors la sortie de ton programme.
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
7 mars 2005 à 09:25
salut

J'ai bien essayer ta commande exec ("ping -n 1 -w 50 192.168.0.1", $buff);
et ca marche plutot bien j'ai rien à dire sur ce point

Par contre pourquoi aucun résultat ne s'affiche avec mem/c ou chkdsk?
de plus, j'ai essayer d'adapter cette commande à mes besoins et ca donne ceci:
exec("getmsg.exe P:\test\APPL 1890460 C:\test C:\test",$buff);

Et le résultat est que l'internet explorer tourne en rond et que deux process apparaisse dans le task manager (cmd et getmsg). Le plus drole c'est que je n'arrive même pas à les killer

Alors pourquoi est-ce que ca ne marche pas? je ne comprend pas?
0
skmancuso Messages postés 53 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 11 janvier 2007
7 mars 2005 à 09:31
Je viens de remarquer qu'avec chkdsk celà génère aussi le même problème soit Internet explorer tourne en rond et deux process(cmd et chkdsk) sont créer sans pour autant pouvoir être killé
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 mars 2005 à 20:01
dsl je peux pas aider.... j'ai pas windows...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Rejoignez-nous