IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lancement et débuggage de l'exécution d'un programme externe


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut Lancement et débuggage de l'exécution d'un programme externe
    Voila 2 jours que je cherche à utiliser un VBS depuis une commande Exec sur PHP.

    La commande est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:\www\Convert2PDF "D:\www\test.doc" "D:\www\" "test"
    Les paramètres sont la position du fichier à convertir, la destination et le nom du fichier pdf de destination.

    Le souci n'est pas dans le script, celui ci fonctionne à merveille quand je lance depuis le CMD.

    Mais si je le lance depuis la commande PHP Exec(),ca mouline et ca ne donne rien.


    J'ai donc pensé à des droits sur les fichiers, dossiers, mais j'ai mis les droits maximum, user SYSTEM inclus.

    Je pensais que le problème venait du fait que l'utilisateur qui lancait ca était le system, alors j'ai essayé de passer par psexec, transformer le script en.EXE, mais rien n'y fait.J'ai aussi essayé de mettre mon script dans le System 32, toujours rien... Je peux uniquement lancer des commande type ipconfig dans leExec(), mais si j'essai de lancer mon script rien n'y fait alors qu'il est correct.

    Safe mode est désactivé off course.

    Je suis preneur de toute bonne information.

    PS: le but étant de pouvoir transformer un fichier en pdf, sans avoir à installer le pdfcreator sur chaque poste, donc si quelqu'un connait une solution pour avoir une conversion au niveau du serveur en fichier pdf, je suis preneur.

    Merci.

  2. #2
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    Je précise le code PHP que j'essai d'utiliser à la place mais j'ai le même résultat....

    Le processus PDFCreator se lance bien, mais rien ne se passe et tout semble tourner en boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    $maxTime = 30  ;  // in seconds
    $sleepTime = 250; // in milliseconds
     
     
    $ifname='D://test.doc';
    $PDFCreator = New COM("PDFCreator.clsPDFCreator") or die("Couldn\' start the COM-object");
    $PDFCreator->cStart("/NoProcessingAtStartup");
     
    $PDFCreator->cOptions->UseAutosave = 1;
    $PDFCreator->cOptions->UseAutosaveDirectory  = 1;
    $PDFCreator->cOptions->AutosaveFormat  = 0;
     
     
    $DefaultPrinter = $PDFCreator->cDefaultprinter;
     
    $PDFCreator->cDefaultprinter = "PDFCreator";
    $PDFCreator->cClearcache();
     
     
     
     if (!file_exists($ifname))
     {
       echo "Can't find the file: " .$ifname;
       break;
     }
     
     if (!$PDFCreator->cIsPrintable($ifname))
     {
      echo "Converting: " .$ifname ."\r\n\r\nAn error is occured: File is not printable!";
      break;
     }
     
     $ReadyState = 0;
     
     $PDFCreator->cOptions->AutosaveDirectory = realpath($ifname);
     $PDFCreator->cOptions->AutosaveFilename  = basename("test.pdf");
    $PDFCreator->cPrintfile($ifname); //C'est cette ligne qui bloque
    $PDFCreator->cPrinterStop = false;
     
     
    // Wait 1000 miliseconds..
    // This is a specific PHP-function, so you'll have to
    // change this one for something else
    com_message_pump(1000);
     
    // Set the default printer back to the old one
    //$PDFC->cDefaultprinter = $DefaultPrinter;
    // Clear cache (again don't know why :) )
    $PDFCreator->cClearcache();
    // ...wait
    com_message_pump(200);
    // Close the printer
    $PDFCreator->cClose();

  3. #3
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    pas de message d'erreur, le résultat est bon quand tu le lances directement en ligne de commande ?

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Moi aussi j'ai longtemps galéré avec une fonction qui marchait très bien en commande mais pas à partir d'un programme php à cause des chemins et des / \ ...

    Je remarque que dans ton code ya test.doc qui se trouve pas au même endroit entre ton script et ton programme ( de d:\www\test.doc à d:/test.doc) c normal ?

    de même moi j'aurais écrit d:/www/test.doc (c comme cela que c dans mon application utilisant exec() )

  5. #5
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    Non ce n'est pas un problème de / ou \ , j'ai testé toutes les combinaisons possibles ca ne change rien.

    Je n'ai pas de message d'erreur, j'ai juste une page qui charge indéfinimement sans erreur... jusqu'à ce que je ferme le processus PDFCreator lancé.

  6. #6
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    le résultat est bon quand tu le lances directement en ligne de commande ?

  7. #7
    Membre éclairé Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Par défaut
    Oui en ligne de commande (cmd.exe) tout est parfait, mais c'est quand j'utilise cette même commande dans le Exec() de PHP, ca ne fonctionne pas et je n'ai pas de message d'erreur.

  8. #8
    Membre Expert
    Homme Profil pro
    CTO
    Inscrit en
    Avril 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : CTO
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 361
    Par défaut
    Tu as trouvé une solution ?

Discussions similaires

  1. Exécution d'un programme externe
    Par morofiler dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2010, 18h29
  2. Exécution d'un programme externe
    Par DSGSLA dans le forum C++
    Réponses: 10
    Dernier message: 21/04/2010, 16h24
  3. [Système] exécution d'un programme externe
    Par wonderyan dans le forum Langage
    Réponses: 2
    Dernier message: 17/09/2007, 13h40
  4. Réponses: 3
    Dernier message: 06/06/2007, 16h19
  5. exécution d'un programme externe
    Par didiss dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 04/04/2007, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo