Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
811 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Processus WinWord ne se ferme pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Processus WinWord ne se ferme pas

n°1340697
LouyZ
Yepaaaaaaaa
Posté le 06-04-2006 à 15:31:03  profilanswer
 

Bonjour,
 
j'ai ce code qui me permet d'ouvrir un document Word, de modifier des champs dans celui-ci par des variables récupérées dans une base de données, d'enregistrer le document, et ensuite grace à un header de l'affiché sur le client
 
$type = $_POST['type'];      // on récupére le type du contrat type
     
$filename = "$path_contrat_type/$type";      // Adresse du contrat
     
// pas de limite de temps
set_time_limit(0);
 
// Pas de paramétres requis
$empty = new VARIANT();
 
// Chargement de la librairie
com_load_typelib('Word.Application');
     
// Création de l'object
$word = new COM('word.application') or die('Word n\'est pas installé');
 
echo "Veuillez patientez... Chargement de Word\n";
 
     
$word->Visible = 0;
     
// Ouvre le document
$word->Documents->Open($filename);
     
// Remplacement des variables
$word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'SNCF_ENT_ETAB');
$word->Selection->TypeText($nom);
 
$word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'SNCF_ENT_TELFAX');
$word->Selection->TypeText($tel_fax);
 
... // etc..    
 
$output_devis = "$path_contrat/$num_devis.doc";      // Fichier doc temporaire
     
$word->Documents[1]->SaveAs($output_devis);
$word->Documents[1]->Close();      // Fermer et liberer la mémoire
$word->Documents->Close();
$word->Quit($empty,$empty,$empty);
$word->Release();
$word = null;
unset($word);
 
 
Tout marche niquel, mais le processur WinWord continu de tourner sur le serveur, et à chaque lancement, un processus WinWord suplémentaire est crée, et n'est pas fermé
 
On m'as dit d'enlever com_load_typelib('Word.Application');  mais si j'enléve cette ligne, les champs ne sont remplacés et les variables sont toutes ajoutées audébut du document Word!!  :cry:  :heink:  
 
Help please :D


Message édité par LouyZ le 06-04-2006 à 15:31:30
mood
Publicité
Posté le 06-04-2006 à 15:31:03  profilanswer
 

n°1340902
olivthill
Posté le 06-04-2006 à 18:39:47  profilanswer
 

J'ai écrit un code presque identique, c'est marrant.
... Mais, j'ai eu le même problème, et ce n'était pas drôle.
 
Je l'ai finalement résolu en enlevant com_load_typelib('Word.Application');
et en ajoutant com.autoregister_typelib = true dans PHP.INI.
 
C'était avec PHP4.3.3. Cependant, je ne sais pas si ça marche aussi avec une version plus récente (et d'ailleurs, cela m'intéresserait de le savoir).

n°1340912
LouyZ
Yepaaaaaaaa
Posté le 06-04-2006 à 19:20:28  profilanswer
 

olivthill a écrit :

J'ai écrit un code presque identique, c'est marrant.
... Mais, j'ai eu le même problème, et ce n'était pas drôle.
 
Je l'ai finalement résolu en enlevant com_load_typelib('Word.Application');
et en ajoutant com.autoregister_typelib = true dans PHP.INI.
 
C'était avec PHP4.3.3. Cependant, je ne sais pas si ça marche aussi avec une version plus récente (et d'ailleurs, cela m'intéresserait de le savoir).


 
Bah écoute je test ca dès demain au taf et j'te dit quoi :)
Merci!

n°1340913
gatsu35
Blablaté par Harko
Posté le 06-04-2006 à 19:23:28  profilanswer
 

sinon un kill sur winword.exe ????

n°1341142
Sebastien
Posté le 07-04-2006 à 07:58:23  profilanswer
 

Et la tu te fais detruire par tes clients, qui avaient un courrier word en cours de modification :o

n°1341143
LouyZ
Yepaaaaaaaa
Posté le 07-04-2006 à 07:59:11  profilanswer
 

Ca marche le com.autoregister_typelib = true dans PHP.INI :)
 
Merciiii !!


Message édité par LouyZ le 07-04-2006 à 08:11:09
n°1341149
LouyZ
Yepaaaaaaaa
Posté le 07-04-2006 à 08:12:18  profilanswer
 

Sebastien a écrit :

Et la tu te fais detruire par tes clients, qui avaient un courrier word en cours de modification :o


 
Oui faut mieu évité lol!

n°1341203
gatsu35
Blablaté par Harko
Posté le 07-04-2006 à 10:03:51  profilanswer
 

Sebastien a écrit :

Et la tu te fais detruire par tes clients, qui avaient un courrier word en cours de modification :o


 
Ah vi, mais je pensais que word était ouvert sur le serveur donc bon :/
en plus j'y aurait été a la bourrin,
lorsque tu ouvres word tu recupère un pid, puis tu kill via le pid. :D
hummm koi ke cette solution est trop bourrin

n°1341224
rufo
Pas me confondre avec Lycos!
Posté le 07-04-2006 à 10:20:14  profilanswer
 

ben si, word est ouvert sur le serveur puisque c'est un script php...

n°1341747
LouyZ
Yepaaaaaaaa
Posté le 07-04-2006 à 19:20:23  profilanswer
 

Vi c'est sur le serveur, mais si deux gars ouvrent des devis à très peu d'intervalle ca risquera de blatter je pense! De toute ca marche la solution de olivthill! ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Processus WinWord ne se ferme pas

 

Sujets relatifs
Empecher un processus de se lancerprocessus et boucle infinie -> ressources CPU à 100% ou pas?
Savoir si ma fenetre est fermé[VBScript] [RESOLU] fenetre qui se ferme automatiquement
Vbscript qui ne se ferme pas !! (wscript.quit ne fonctionne pas)Lancement Processus: plus lents depuis java / terminal
[batch/VB]Invite de commande se fermehyperlien qui ferme une fenêtre en html
[C / UNIX ] Semaphore entre plusieurs processus [Résolu][Developpement linux] Processus en background et job control !
Plus de sujets relatifs à : Processus WinWord ne se ferme pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR