Re: Fichier word deja ouvert ?

Posté par drcharly93 le 9/12/2006 7:10:53
Bonjour,

Cela n'est pas si simple car il peu y avoir plusieurs instance de Word de lancé sur une machine.

Solution en Manipulant Word
//Déclaration de l'objet pour Word
oWrd est un objet automation Dynamique
sFichierWord est une chaine = "Test.doc"

//On tente de récupérer une instance Word en cours
oWrd = ObjectActif( "Word.Application" )

//Si instance en cours on en lance une recherche
Si oWrd <> Null Alors
 nDoc est un Entier
 i est un entier 
 
 nDoc = oWrd>>Documents>>Count()
 Pour i = 1 A nDoc
  Si Majuscule( oWrd>>Documents(i)>>Name ) = sFichierWord Alors
  Info( "Le fichier " + sFichierWord + " est déjà ouvert!"
  Retour
 Fin
Fin
Info( "Le fichier " + sFichierWord + " n'est pas ouvert!"


Solution en recherchant le fichier créer à l'ouverture du document

Lorsque vous ouvrez un document Word celui ci créer automatique un fichier portant le même nom en remplacant les deux première lettre du nom par ~$ exemple
Test.doc ==> ~$st.doc
il vous suffit dinc de rechercher ce nom
sFichierWord est une chaine = "Test.Doc"
sFichierOuvert est une chaine
sChemin est une chaine = "c:\temp\"

sFichierOuvert = "~$" + sFichierWord[[ 3 A ]]

Si fRep( sChemin + sFichierOuvert, frFichier ) ~= majuscule( sFichierOuvert ) Alors
 Info( "Le fichier " + sFichierWord + " est déjà ouvert! " )
 Retour
Fin
Info( "Le fichier " + sFichierWord + " n'est pas ouvert!"

Il faut tout de même faire attention car dans certain cas Word ne supprime pas le fichier ~$<Nom du fichier>

Le code à été saisie à la volée et peut comporter des erreurs

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=4814&post_id=19989