Lancer un programme windows avec php

Fermé
sara sama - 15 avril 2012 à 19:45
 sara sama - 18 avril 2012 à 19:28
Bonjour,

Je suis entrain de programmer en PHP dans le but d'accéder à un programme Windows sur un ordinateur distant, et l'afficher sur mon site (je ne sais même pas si c'est possible ou non)... Mais tous cela semble encore bien loin (lol).

J'ai commencé tout d'abord par tester la commande exec() en PHP pour afficher un lecteur. Je vous montre mes lignes de code:


<html>
<body>
Execution du lecteur MPCSTAR à partir du pc:

<?php

$prog="C:\Program Files\MpcStar\mpcstar.exe";

if (file_exists($prog)) 
{ 

echo 'MPCSTAR a été trouvé'; 

exec ('C:\Program Files\MpcStar\mpcstar.exe');

}

else {echo 'aucun résultat';}

?>


</body>
</html>



Alors comme résultat , j'obtient une fenêtre où il y'a :
"Un programme ne peut pas afficher un message sur le bureau ... Ce problème se produit en raison d'une incompatibilité partielle avec Windows Vista... "
Puis en cliquant sur "Afficher le message" de cette fenêtre de dialogue, je peux voir mon lecteur qui s'ouvre, mais problème: Tout disparaît ! mon bureau, la barre démarrer ... Il n y'a que trois éléments : un fond bleu, mon lecteur, une boite de dialogue pour " Retourner au bureau Windows" .
Quand je retourne à ma page WEB , ça tourne encore!! pourtant le echo 'MPCSTAR a été trouvé' devrait apparaître non?

Même en googlant ce problème, je ne comprends pas très bien sa provenance. Alors mes questions sont les suivantes:

- Que signifie la fenêtre : "Un programme ne peut pas afficher un message sur le bureau ... Ce problème se produit en raison d'une incompatibilité partielle avec Windows Vista... "??
Et comment pourrait-je contourner ce problème d'incompatibilité?

- Pourquoi mon lecteur n'apparaît pas directement sur le bureau? (est ce un problème lié à PHP s'exécute sur le serveur? sachant que je travaille toujours en local-> je suis le serveur)

- Pourquoi le echo n'apparaît pas?

J'espère que quelqu'un pourra m'éclairer puisque je suis complètement bloquée maintenant! Toute réponse sera la bienvenue!
Merci à vous~
A voir également:

3 réponses

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
17 avril 2012 à 10:57
Bonjour,

PHP est un langage de script coté serveur essentiellement....

PHP peut ouvrir des exécutables et commandes systèmes coté serveur

MAIS c'est très risqué:
- parce qu'on n'a aucune garantie quant au rendu coté client,
- parce qu'un exe s'exécutera coté serveur et n'est sans doute pas destiné à renvoyer des infos coté client... donc intérêt nul.

Par exemple, si vous pensez lancer Word et donner la main coté client à WORD c'est IM-POS-SI-BLE!!!!!

Enfin, PHP fait déjà énormément de choses. L'appel à un exécutable externe n'a d'intéret que pour des situations très spéciales. Si vous voulez qu'un exe soit traité coté client, il faut proposer cet exe en téléchargement et le lancer coté client. Mais un exe windows ne fonctionnera pas sous Linux ou Mac. De plus, proposer des extensions de fonctionnalités d'un serveur web au travers d'un executable à télécharger, c'est toujours suspect (possibilité d'infection ou de traitements cachés). Pour moi, un site qui propose ça, je dégage!

A+






3
flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
Modifié par flav1313 le 16/04/2012 à 11:20
Premièrement en PhP, les destinations s'écrivent :

mondossier/monsousdossier/monfichier

et non pas:

mondossier\monsousdossier\monfichier

Sache que le PhP ne peut ouvrir un fichier disponible sur l'ordinateur de ton client, il peut ouvrir un fichier disponible sur ton serveur!
1
Merci beaucoup d'avoir répondu à mon sujet ^^
Suivant vos explications , si j'ai bien compris: si je lance par exemple un lecteur qui joue une musique, ce n'est pas le client qui va pourvoir écouter cette zik... elle sera plutôt joué coté serveur et non coté client, c'est bien ça?
@mpmp93: Je travaille sur une application qui n'atteindra jamais internet (lol) tout va se faire en local, donc la sécurité c'est le dernier de mes soucis , si je puis dire ^^'
J'ai suivi la méthode que tu as proposé , et cela marche. Je crée mon fichier "lanceur.bat" dans lequel j'écris les commandes suivantes:

@echo off 
start /w "" "C:\Program Files\MpcStar\mpcstar.exe"
cls
exit


Puis à la page dans laquelle je désire faire apparaître mon programme, j'insère la ligne de code suivante:

<html>
<body>

<a href="chemin\lanceur.bat" > Mon Lecteur </a>

</body>
</html>


En cliquant sur le lien , je télécharge le fichier "lanceur.bat" qui est exécuté , et je reçois en sortie mon lecteur qui s'ouvre.
Cela me satisfait, mais... comment dire.. ce n'est pas trop raffiné comme solution ^^' (les utilisateurs de mon application seront lassés à force de télécharger, cliquer sur "exécuter" afin de voir leur programme)

* N'y a t-il pas une solution qui me permettrait d'exécuter le fichier bat sans avoir à le télécharger?
* Et aussi enlever la confirmation d'exécution?

@flav1313, cela peut te paraître bête comme question , mais "ouvrir un fichier disponible sur ton serveur" quel genre de fichier par exemple?
et je travaille en local, je suis censé être le serveur ... non?

Merci beaucoup~~
0