Probleme : Executer un fichier bat sans le sauvegarder
Probleme : Executer un fichier bat sans le sauvegarder - PHP - Programmation
MarshPosté le 11-06-2008 à 15:24:01
Bonjour, Je viens vous voir car j'ai un soucis au niveau de mon programme. Je vous explique sont fonctionnement : J'ai 3 listes box, dans chaque liste box on trouve différents choix. Il y a un bouton ok qui dé que l'on a fait notre choix Exécute un Fichier.bat avec cette ligne de code : rundll32 printui.dll,PrintUIEntry /q /in /n \\Nom_Partage\Imprimante
Le problème est que pour que le fichier soit exécuté je suis obligé de l'enregistrer, quand je fait exécuter l'invite de commande s'ouvre 1ms et rien ne se passe, alors que quand je l'enregistre, et qu'après je clique sur le l'apli tout se passe bien, mon imprimante est bien ajoutée au réseaux.
Donc voila, voici mon code php qui gère l'ouverture du fichier et le download :
<?php if(isset($_POST['sel'])==TRUE && $_POST['sel']!='') { $bat = $_POST['sel']; } //envoye du header au navigateur // Test du navigateur : IE ou autre ? if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) { header('Content-Type: application/force-download'); } else { header('Content-Type: application/octet-stream'); } switch($bat) {
case 'ls_room_236': $situation ='ls_room_236.bat'; $nom='ls_room_236.bat'; $poids=1024; break;
case 'ls_room_243': $situation ='ls_room_243.bat'; $nom='ls_room_243.bat'; $poids=1024; break; ..... //J'ai 28 imprimantes, je vais pas tout mettre ^^ }
Marsh Posté le 11-06-2008 à 15:24:01
Bonjour,
Je viens vous voir car j'ai un soucis au niveau de mon programme.
Je vous explique sont fonctionnement :
J'ai 3 listes box, dans chaque liste box on trouve différents choix. Il y a un bouton ok qui dé que l'on a fait notre choix Exécute un Fichier.bat avec cette ligne de code :
rundll32 printui.dll,PrintUIEntry /q /in /n \\Nom_Partage\Imprimante
Le problème est que pour que le fichier soit exécuté je suis obligé de l'enregistrer, quand je fait exécuter l'invite de commande s'ouvre 1ms et rien ne se passe, alors que quand je l'enregistre, et qu'après je clique sur le l'apli tout se passe bien, mon imprimante est bien ajoutée au réseaux.
Donc voila, voici mon code php qui gère l'ouverture du fichier et le download :
<?php
if(isset($_POST['sel'])==TRUE && $_POST['sel']!='')
{
$bat = $_POST['sel'];
}
//envoye du header au navigateur
// Test du navigateur : IE ou autre ?
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
{
header('Content-Type: application/force-download');
}
else
{
header('Content-Type: application/octet-stream');
}
switch($bat)
{
case 'ls_room_236':
$situation ='ls_room_236.bat';
$nom='ls_room_236.bat';
$poids=1024;
break;
case 'ls_room_243':
$situation ='ls_room_243.bat';
$nom='ls_room_243.bat';
$poids=1024;
break;
.....
//J'ai 28 imprimantes, je vais pas tout mettre ^^
}
header('Content-Length: '. $poids);
header('Content-disposition: attachment; filename='. $nom);
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($situation);
exit();
.....
?>
Et si certaine chose ne son pas clair dite le moi.
Amicalement Nodoka.