ActiveX et ouverture d'un fichier word

Résolu
Kirostaz Messages postés 29 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 10 juin 2008 - 14 nov. 2007 à 10:36
barny80 Messages postés 1 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 10 juin 2010 - 10 juin 2010 à 16:44
Bonjour,

Je travaille sur in intranet.
Mon but est de pouvoir ouvrir un fichier Word présent sur le serveur depuis une page php via ce lien :

<td background="img/ouvrir0.gif" style="cursor:hand;" width="198" height="24" onclick="ouvriractivex();">
Ouvrir le document
</td>

qui appelle donc cette fonction JS :

{
try {
wsh = new ActiveXObject("WScript.Shell");
wsh.run ('cmd /c "<?php echo $monchemin;?><?php echo $nomfic;?>.rtf"');
}
catch(err)
{
txt="Erreur lors de la création de l'objet ActiveX.\n\n"
txt+="Informations : " + err.description + "\n\n"
txt+="Veuillez contacter votre administrateur réseau.\n\n"
alert(txt)
}
}



Et j'ai le droit à cette erreur : Un composant ActiveX ne peut pas créer un objet.

J'ai essayé pas mal de solutions :
- Ajouter le serveur en site de confiance
- Modifier les registres
- Ajouter les DLL via regserv
etc etc

On a meme essayé un script de modification au lancement de la session :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1]
@=""
"1201"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\atlas]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\compta]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\tera]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\atlas]
@=""
"http"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\compta]
@=""
"http"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\tera]
@=""
"http"=dword:00000001



Ca a fonctionné un temps mais ça met une m**** pas possible .


Le but est qu'en fait chaque personne qui ouvre le docuement, ouvre celui présent sur le serveur ( d'où la ligne de commande ) afin que les modifications apporté au document Word soit directement appliqué sur le fichier serveur et non sur une copie locale du fichier, et ce afin que si qqn vient consulter le fichier par la suite, il voit les modifications.


Auriez vous une solution pour régler mon problème ou une solution alternative ( sans upload/download de l'utilisateur ).

Merci :)

12 réponses

Kirostaz Messages postés 29 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 10 juin 2008
15 nov. 2007 à 13:37
J'avais éssayé cela aussi, malheureusement sans succès en local non plus, avec la même erreur.

J'ai donc tenté un coup de bluff : réinitialiser IE.

Options Internet > Avancés > Réinitiliser . Cette option où il est précisé qu'il faut utiliser ça qu'en cas d'extrême recours ...

Bon j'ai re-réglé ce qui devait l'être sans toucher à aucune option concernant l'ActiveX, sans même rajouter le serveur aux sites de confiances, et là Bingo, il l'a éxécuté en me demandant si je voulais bien le faire tourner parcequ'il étais pas signé, mais après validation mon word c'est bien ouvert avec le bon fichier.
J'ai donc modifié le paramètre de sécurité concernant les scripts non signés, et non voilà repartis comme en l'an 40.

Sincèrement, je sais pas du tout d'où venais le soucis, tout ce que je peux dire c'est que maintenant ça fonctionne.
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 nov. 2007 à 13:54
>>tout ce que je peux dire c'est que maintenant ça fonctionne.
    nickel... c'est l'essentiel
>>je sais pas du tout d'où venait le soucis
>>Options Internet > Avancés > Réinitiliser
    tu avais du modifier je ne sais quoi  je ne sais où qui  interdisait les ActiveX


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]


l'essentiel c'est le principal ( et lycée de Versailles d'ailleurs )
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 nov. 2007 à 11:34
bonjour,




    d'abord, IE doit être autorisé à traiter les ActiveX

       / Outils / Options Internet / Sécurité
            choisir la zone ( ici, à priori, Intranet Local )
             cliquer sur personaliser la niveau
             et cocher les "choses voulues" dans "Contrôles ActiveX et Plug-ins"

       rien d'autre n'est à faire ( et surtout pas au niveau du registre )

    ensuite, et surtout ! JavaScript, gère les données
        sur le micro du Client,  pas ceux sur le serveur.
          
    soit, Word ( multi-utilisateurs ) à installer sur le serveur
    soit, développer l'accès aux données du serveur dans un ActiveX
    soit, fichier serveur => fichier client, MAJ, fichier client ==> serveur
    soit...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 nov. 2007 à 11:40
soit langage serveur qui envoit ce fichier ( ajax ou pas )
    dans une page vers le client qui renvoie les données mise à jour.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kirostaz Messages postés 29 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 10 juin 2008
14 nov. 2007 à 13:05
J'ai déjà fait tout ça, IE accepte les controles ActiveX que se soit en zone intranet ou internet.

Je sais aussi que JS est coté client, mais comme chaque user à les droits sur le répertoire ou sont stocké les documents, on peux donc les lancés via \\serveur\doc\doc.rtf dans l'éxécuteur de commande. Je veux donc lancer ceci dans l'éxécuteur du client , ce qui va donc ouvrir le bon fichier ( stocké sur le serveur ) dans le Word du client, qui va pouvoir le modifier directement sans passé par une copie locale.

Le soucis vient du fait que l'objet ActiveX ne se créer pas, mais IE semble correctement configuré, accepte les ActiveX, et donc je ne vois pas du tout d'ou peut venir le soucis.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 nov. 2007 à 13:44
>>Le soucis vient du fait que l'objet ActiveX ne se crée pas,
    pas tout à fait : les autorisations ne permettent pas de le créer
>>IE semble correctement configuré
    probablement pas ?
    si on lançait directement Word, ça voudrait dire que Word n'est pas
       installé sur ce poste, mais sur new ActiveXObject("WScript.Shell");
       la question ne se pose pas, à part autoriser les ActiveX en local...


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 nov. 2007 à 13:47
et attention d'ailleurs au fait de lancer ça part shell,
ça ne va pas ouvrir le fichier dans Word, mais dans
le programme chargé de gérer les fichiers .rtf
( et chez moi, par exemple, ce n'est pas Word
    qui est limité aux fichiers .doc )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Kirostaz Messages postés 29 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 10 juin 2008
14 nov. 2007 à 14:08
Par défaut, ici Word est configuré pour ouvrir le rtf, mais encore, là n'est pas vraiment le soucis, du moment que l'utilisateur puisse l'editer correctement et le sauvegarder sur le serveur et non en local, ça m'irais déjà bien !

Voici la configuration IE de l'Intranet Local :
0
Kirostaz Messages postés 29 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 10 juin 2008
14 nov. 2007 à 14:09
La 1 c'est l'ajout du serveur en site de confiance, et les 3 autres la configuration de ce qui touche a l'activeX dans IE
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 nov. 2007 à 18:04
essayer ce qui quit
d'abord     1° avec un fichier en local
puis           2° avec un ficher sur le serveur

<hr size= "2" width="100%" />

<html>
<head>
<script type="Text/JavaScript">
function ouvre()
{    var app_word = new ActiveXObject("Word.Application");
     app_word.Application.Visible = true;
     app_word.documents.open("

nom du fichier.doc

");
}
</script>
</head>

</html>


<hr size ="2" width="100%" />
et dis nous....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Kirostaz Messages postés 29 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 10 juin 2008
15 nov. 2007 à 17:44
C'est bien ça le truc, c'est que j'avais rien touché avant , et que , encore plus bizarre ( mais venant d'Ie .... ), ma requete de création d'objet ne marchait pas sur mon poste ... on dit donc que ça viens de mon poste, et que IE est mal configuré, soit, mais ça ne marchais pas chez les autres non pls, alors comment expliquer qu'une fois que j'ai réinitialiser mon IE, et que le miens , ça marche chez moi et chez tout le monde.....

A l'informatique quand tu nous tiens :)

Merci quand même de votre aide rapide !
0
barny80 Messages postés 1 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 10 juin 2010
10 juin 2010 à 16:44
Bonjour,

par rapport au message de Bultez (du mercredi 14 novembre 2007 à 18:04)
Pour moi ça fonctionne avec un fichier local mais pas avec un distant.
Je ne sais pas quoi mettre dans nom de fichier : http://10.99.99.99:8080/Web/fichiers/fic1.doc ou fichiers/fic1.doc ou ...
Le problème indiqué par le debuggeur est que le nom de fichier est invalide.

merci

Barny
0
Rejoignez-nous